Commit Graph

21 Commits

Author SHA1 Message Date
javier 48ad88ef92 Implemented the UserAgentMiddleware type in the library target. 2025-10-13 02:37:46 +02:00
javier 8d371f20a3 Implemented the URLValidationRule type in the library target. 2025-10-13 01:35:55 +02:00
javier 28e3c68ce1 Implemented the SemanticVersionValidationRule type in the library target. 2025-10-13 01:00:33 +02:00
javier c324affad1 Renamed the AgentNameValidationRule type in the library target as CamelCaseValidationRule. 2025-10-13 00:17:22 +02:00
javier b13e139237 Implemented the AgentNameValidationRule type in the library target. 2025-10-13 00:01:22 +02:00
javier cd157bc3c3 Implemented the "fullyMatch(pattern: )" function for the String+Functions extension in the library target. 2025-10-13 00:00:25 +02:00
javier 21f2901337 Improved the AuthMiddleware type in the library target by adding input validation and by generating the authentication information once. 2025-10-12 21:26:55 +02:00
javier c2ab60a5aa Fixed an issue with the way the regex pattern was generated for the SecureValidationRule type in the library target. 2025-10-12 19:15:26 +02:00
javier a47a3a464b Fixed a warning message for the NotNilValidationRule type in the library target. 2025-10-12 17:41:06 +02:00
javier f32d24b26b Implemented the SecureValidationRule type in the library target. 2025-10-12 17:37:52 +02:00
javier c00c348f02 Implemented the ValidateInputUseCase use case in the library target. 2025-10-12 14:36:04 +02:00
javier 2677bd8de5 Implemented the NotNilValidationRule type in the library target. 2025-10-12 14:12:20 +02:00
javier 630f8a03f7 Implemented the NotEmptyValidationRule type in the library target. 2025-10-12 13:57:54 +02:00
javier 8c68ae9417 Defined the InputValidationRule protocol in the library target. 2025-10-12 13:57:24 +02:00
javier db688c553d Added the "userAgent" format constant to the String+Constants extension in the library extension. 2025-10-12 13:13:09 +02:00
javier 25fdc1fabd Implemented a Product model in the library target. 2025-10-11 10:08:18 +02:00
javier bfc9e67d38 Implemented the Authentication middleware (#3)
This PR contains the work done to implement the `AuthMiddleware` middleware, to authenticate the requests sent to the backend service, based on [their specifications](https://www.discogs.com/developers/#page:authentication).

In addition, some documentation has been added/updated and some boilerplate source code has been removed from the project.

Reviewed-on: #3
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2025-10-11 07:39:52 +00:00
javier 428eedd89d Implemented the Services and Database GET endpoints (#2)
This PR contains the work done to include the define the information sections of the `OpenAPI` specification document and all the `GET` endpoints of the _Service_ and _Database_ categories.

The following endpoints have been defined in the document, and also tested manually with `Swift`:
* GET `/`
* GET `/artists/{artist_id}`
* GET `/artists/{artist_id}/releases`
* GET `/labels/{label_id}`
* GET `/labels/{label_id}/releases`
* GET `/masters/{master_id}`
* GET `/masters/{master_id}/versions`
* GET `/releases/{release_id}`
* GET `/releases/{release_id}/rating`
* GET `/releases/{release_id}/rating/{username}`
* GET `/releases/{release_id}/stats`
* GET `/database/search`

In addition, a first version of the _Github Pages_ documentation has been generated from the `DocC` documentation catalog, and the generated Swift code from the `openapi.yaml` file.

Reviewed-on: #2
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2025-10-09 23:51:39 +00:00
javier 0812ee2086 Added the DocC documentation catalog to the library target. 2025-10-06 17:37:19 +02:00
javier bb8d2be87f Defined the platforms, product, and targets to start work in the Package.swift file. 2025-10-06 17:29:09 +02:00
javier 21a8f20a62 Initial Commit 2025-10-06 17:14:31 +02:00