Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement 1.0.5 #5

Merged
merged 14 commits into from
Nov 20, 2024
Merged

Enhancement 1.0.5 #5

merged 14 commits into from
Nov 20, 2024

Conversation

N7ghtm4r3
Copy link
Owner

Overview of Changes

Modularization

  • The library was split into two modules:
    1. Backend Module: Contained all utilities specific to backend operations.
    2. Core Module: A Kotlin Multiplatform (KMP) compliant module designed for use in both backend and frontend environments.

Breaking Release

  • This release is a breaking release as it marked the beginning of the migration towards full KMP compliance.
    • Migration required adjustments in existing implementations to align with the new architecture.

Changelogs

1. Added Request Interceptor

  • Added the possibility to integrate an interceptor in the Requester.
    • The interceptor executed a specific action when a request was executed.

2. Added Query Parameters in Request Methods

  • Enhanced the exec request methods and their related wrappers in the Requester class to:
    • Support query parameters (derived from Params in APIRequest).

3. Integrated createPaginationQuery

  • Integrated the createPaginationQuery method into the Requester to handle pagination queries effectively.

4. Integrated PaginatedResponse

  • Incorporated the PaginatedResponse class into the environment package for unified paginated data handling.

5. Added Custom Constructor to EquinoxItem

  • Created a constructor in EquinoxItem that allowed the use of a custom IDENTIFIER_KEY.
    • This supported cases where the column name was overridden.

6. Checked User Existence in EquinoxUsersHelper

  • Added a method to EquinoxUsersHelper to:
    • Check if a user existed by their ID.

7. Added sendPaginatedRequest Method in Requester

  • Added a sendPaginatedRequest method in the Requester that:
    • Worked similarly to sendRequest.
    • Automatically returned a PaginatedResponse.

8. Added RequiresSuperCall Annotation

  • Introduced a RequiresSuperCall annotation (similar to CallSuper of Android) to:
    • Warn about the necessity of invoking super in the EquinoxLocalUser class.

9. Added @DTO Annotation

  • Created a @DTO annotation to:
    • Mark classes as Data Transfer Objects (DTOs).
    • Add a dedicated interface for the convertToRelatedDTO method.

10. Made request a Receiver of sendRequest

  • Refactored the sendRequest method to:
    • Treat request as its receiver.

11. Extended successResponse in EquinoxController

  • Extended the successResponse method of the EquinoxController to:
    • Accept custom success messages.
    • Create a dedicated method for handling custom messages.

12. Refactored Packages

  • Refactored the package structure of:
    • Controller
    • Repository
    • Service.

13. Added FilteredQuery

  • Integrated a FilteredQuery to:
    • Facilitate the creation of filtering queries.

@N7ghtm4r3 N7ghtm4r3 added the enhancement New feature or request label Nov 20, 2024
@N7ghtm4r3 N7ghtm4r3 added this to the Migration to KMP compliant milestone Nov 20, 2024
@N7ghtm4r3 N7ghtm4r3 self-assigned this Nov 20, 2024
@N7ghtm4r3 N7ghtm4r3 merged commit 22f7cce into main Nov 20, 2024
@N7ghtm4r3 N7ghtm4r3 deleted the e1.0.5 branch January 4, 2025 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant