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>
This commit was merged in pull request #3.
This commit is contained in:
2025-10-11 07:39:52 +00:00
committed by Javier Cicchelli
parent 428eedd89d
commit bfc9e67d38
1958 changed files with 2591 additions and 1926 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"title":"Equatable Implementations","modules":[{"name":"DiscogsService"}],"role":"collectionGroup","roleHeading":"API Collection"},"variants":[{"paths":["\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"topicSections":[{"title":"Operators","generated":true,"anchor":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/!=(_:_:)"]}],"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct"]]},"sections":[],"kind":"article","references":{"doc://DiscogsService/documentation/DiscogsService/Operations":{"navigatorTitle":[{"kind":"identifier","text":"Operations"}],"fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"Operations"}],"url":"\/documentation\/discogsservice\/operations","role":"symbol","type":"topic","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","abstract":[{"text":"API operations, with input and output types, generated from ","type":"text"},{"code":"#\/paths","type":"codeVoice"},{"text":" in the OpenAPI document.","type":"text"}],"title":"Operations"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input":{"navigatorTitle":[{"kind":"identifier","text":"Input"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Input"}],"url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input","title":"Operations.searchDatabase.Input","kind":"symbol","role":"symbol","abstract":[],"type":"topic"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input/Query-swift.struct/!=(_:_:)":{"title":"!=(_:_:)","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/!=(_:_:)","url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct\/!=(_:_:)","abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}],"type":"topic","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"role":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase":{"url":"\/documentation\/discogsservice\/operations\/searchdatabase","abstract":[{"type":"text","text":"Search any information from the database."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase","kind":"symbol","role":"symbol","title":"Operations.searchDatabase","type":"topic","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"searchDatabase","kind":"identifier"}],"navigatorTitle":[{"text":"searchDatabase","kind":"identifier"}]},"doc://DiscogsService/documentation/DiscogsService":{"url":"\/documentation\/discogsservice","abstract":[],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","kind":"symbol","role":"collection","type":"topic","title":"DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input/Query-swift.struct":{"navigatorTitle":[{"kind":"identifier","text":"Query"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Query"}],"url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct","title":"Operations.searchDatabase.Input.Query","kind":"symbol","role":"symbol","abstract":[],"type":"topic"}}}
{"metadata":{"role":"collectionGroup","modules":[{"name":"DiscogsService"}],"roleHeading":"API Collection","title":"Equatable Implementations"},"topicSections":[{"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/!=(_:_:)"],"title":"Operators","anchor":"Operators","generated":true}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct"]]},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"minor":3,"patch":0},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct\/equatable-implementations"]}],"sections":[],"kind":"article","references":{"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input/Query-swift.struct/!=(_:_:)":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"text":" ","kind":"text"},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}],"type":"topic","title":"!=(_:_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct\/!=(_:_:)","role":"symbol","url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct\/!=(_:_:)","kind":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations":{"fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Operations","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"text":"Operations","kind":"identifier"}],"title":"Operations","abstract":[{"text":"API operations, with input and output types, generated from ","type":"text"},{"type":"codeVoice","code":"#\/paths"},{"type":"text","text":" in the OpenAPI document."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","kind":"symbol","type":"topic","url":"\/documentation\/discogsservice\/operations"},"doc://DiscogsService/documentation/DiscogsService":{"role":"collection","title":"DiscogsService","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","abstract":[],"type":"topic","url":"\/documentation\/discogsservice"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input/Query-swift.struct":{"title":"Operations.searchDatabase.Input.Query","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input\/Query-swift.struct","navigatorTitle":[{"text":"Query","kind":"identifier"}],"abstract":[],"type":"topic","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Query","kind":"identifier"}],"role":"symbol","url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input\/query-swift.struct","kind":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase/Input":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Input"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Input"}],"title":"Operations.searchDatabase.Input","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase\/Input","abstract":[],"type":"topic","url":"\/documentation\/discogsservice\/operations\/searchdatabase\/input"},"doc://DiscogsService/documentation/DiscogsService/Operations/searchDatabase":{"abstract":[{"type":"text","text":"Search any information from the database."}],"kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/searchDatabase","role":"symbol","title":"Operations.searchDatabase","navigatorTitle":[{"text":"searchDatabase","kind":"identifier"}],"type":"topic","url":"\/documentation\/discogsservice\/operations\/searchdatabase","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"searchDatabase","kind":"identifier"}]}}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long