Implemented the Authentication endpoints (#9)

This PR contains the work done to implement the *Authentication* endpoints of the Discogs API:
* GET `/oauth/request_token`
* POST `/oauth/access_token`
* GET `/oauth/identity`

Reviewed-on: #9
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 #9.
This commit is contained in:
2025-10-13 17:55:48 +00:00
committed by Javier Cicchelli
parent de5b4ff5d0
commit 9a30b69561
2517 changed files with 2674 additions and 2160 deletions
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"sections":[],"topicSections":[{"title":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/!=(_:_:)"],"anchor":"Operators","generated":true}],"schemaVersion":{"minor":3,"patch":0,"major":0},"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output"]]},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Equatable-Implementations","interfaceLanguage":"swift"},"kind":"article","metadata":{"role":"collectionGroup","title":"Equatable Implementations","modules":[{"name":"DiscogsService"}],"roleHeading":"API Collection"},"variants":[{"paths":["\/documentation\/discogsservice\/operations\/getmaster\/output\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster":{"type":"topic","title":"Operations.GetMaster","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","abstract":[{"text":"Get information about a master release.","type":"text"}],"navigatorTitle":[{"kind":"identifier","text":"GetMaster"}],"kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"GetMaster"}]},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","title":"Operations.GetMaster.Output","type":"topic","abstract":[],"fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster\/output","navigatorTitle":[{"text":"Output","kind":"identifier"}]},"doc://DiscogsService/documentation/DiscogsService/Operations":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","title":"Operations","type":"topic","abstract":[{"type":"text","text":"API operations, with input and output types, generated from "},{"type":"codeVoice","code":"#\/paths"},{"type":"text","text":" in the OpenAPI document."}],"fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"Operations"}],"url":"\/documentation\/discogsservice\/operations","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Operations"}]},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/!=(_:_:)":{"type":"topic","role":"symbol","kind":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"title":"!=(_:_:)","url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/!=(_:_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/!=(_:_:)","abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}]},"doc://DiscogsService/documentation/DiscogsService":{"type":"topic","title":"DiscogsService","url":"\/documentation\/discogsservice","role":"collection","abstract":[],"kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"}}}
{"kind":"article","topicSections":[{"anchor":"Operators","generated":true,"title":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/!=(_:_:)"]}],"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"modules":[{"name":"DiscogsService"}],"title":"Equatable Implementations","roleHeading":"API Collection","role":"collectionGroup"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/operations\/getmaster\/output\/equatable-implementations"]}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output"]]},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Equatable-Implementations","interfaceLanguage":"swift"},"references":{"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output":{"url":"\/documentation\/discogsservice\/operations\/getmaster\/output","kind":"symbol","role":"symbol","type":"topic","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"abstract":[],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","navigatorTitle":[{"text":"Output","kind":"identifier"}],"title":"Operations.GetMaster.Output"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster":{"url":"\/documentation\/discogsservice\/operations\/getmaster","kind":"symbol","role":"symbol","type":"topic","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GetMaster","kind":"identifier"}],"abstract":[{"type":"text","text":"Get information about a master release."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","navigatorTitle":[{"text":"GetMaster","kind":"identifier"}],"title":"Operations.GetMaster"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/!=(_:_:)":{"url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/!=(_:_:)","role":"symbol","abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/!=(_:_:)","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"kind":"typeIdentifier","text":"Self"},{"text":") -> ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"kind":"symbol","type":"topic","title":"!=(_:_:)"},"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","abstract":[],"role":"collection","type":"topic","kind":"symbol","url":"\/documentation\/discogsservice","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations":{"url":"\/documentation\/discogsservice\/operations","kind":"symbol","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"enum"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Operations"}],"abstract":[{"type":"text","text":"API operations, with input and output types, generated from "},{"type":"codeVoice","code":"#\/paths"},{"text":" in the OpenAPI document.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","navigatorTitle":[{"kind":"identifier","text":"Operations"}],"title":"Operations"}}}
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
@@ -1 +1 @@
{"sections":[],"topicSections":[{"title":"Operators","generated":true,"anchor":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/!=(_:_:)"]}],"schemaVersion":{"minor":3,"patch":0,"major":0},"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct"]]},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"kind":"article","metadata":{"roleHeading":"API Collection","role":"collectionGroup","title":"Equatable Implementations","modules":[{"name":"DiscogsService"}]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct\/equatable-implementations"]}],"references":{"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/Ok-swift.struct":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct","title":"Operations.GetMaster.Output.Ok","type":"topic","abstract":[],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Ok","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct","navigatorTitle":[{"text":"Ok","kind":"identifier"}]},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","title":"Operations.GetMaster.Output","type":"topic","abstract":[],"fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster\/output","navigatorTitle":[{"text":"Output","kind":"identifier"}]},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster":{"type":"topic","title":"Operations.GetMaster","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","abstract":[{"text":"Get information about a master release.","type":"text"}],"navigatorTitle":[{"kind":"identifier","text":"GetMaster"}],"kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"GetMaster"}]},"doc://DiscogsService/documentation/DiscogsService/Operations":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","title":"Operations","type":"topic","abstract":[{"type":"text","text":"API operations, with input and output types, generated from "},{"type":"codeVoice","code":"#\/paths"},{"type":"text","text":" in the OpenAPI document."}],"fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"Operations"}],"url":"\/documentation\/discogsservice\/operations","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Operations"}]},"doc://DiscogsService/documentation/DiscogsService":{"type":"topic","title":"DiscogsService","url":"\/documentation\/discogsservice","role":"collection","abstract":[],"kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/Ok-swift.struct/!=(_:_:)":{"type":"topic","abstract":[{"text":"Returns a Boolean value indicating whether two values are not equal.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/!=(_:_:)","title":"!=(_:_:)","kind":"symbol","url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct\/!=(_:_:)","role":"symbol","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","text":"Bool","preciseIdentifier":"s:Sb"}]}}}
{"schemaVersion":{"minor":3,"patch":0,"major":0},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"sections":[],"kind":"article","metadata":{"roleHeading":"API Collection","role":"collectionGroup","title":"Equatable Implementations","modules":[{"name":"DiscogsService"}]},"topicSections":[{"anchor":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/!=(_:_:)"],"generated":true,"title":"Operators"}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct"]]},"variants":[{"paths":["\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://DiscogsService/documentation/DiscogsService/Operations":{"url":"\/documentation\/discogsservice\/operations","kind":"symbol","role":"symbol","type":"topic","fragments":[{"kind":"keyword","text":"enum"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Operations"}],"abstract":[{"type":"text","text":"API operations, with input and output types, generated from "},{"type":"codeVoice","code":"#\/paths"},{"text":" in the OpenAPI document.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","navigatorTitle":[{"kind":"identifier","text":"Operations"}],"title":"Operations"},"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","abstract":[],"role":"collection","type":"topic","kind":"symbol","url":"\/documentation\/discogsservice","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster":{"url":"\/documentation\/discogsservice\/operations\/getmaster","kind":"symbol","role":"symbol","type":"topic","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GetMaster","kind":"identifier"}],"abstract":[{"type":"text","text":"Get information about a master release."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster","navigatorTitle":[{"text":"GetMaster","kind":"identifier"}],"title":"Operations.GetMaster"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/Ok-swift.struct":{"url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct","kind":"symbol","role":"symbol","type":"topic","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Ok","kind":"identifier"}],"abstract":[],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct","navigatorTitle":[{"text":"Ok","kind":"identifier"}],"title":"Operations.GetMaster.Output.Ok"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output/Ok-swift.struct/!=(_:_:)":{"url":"\/documentation\/discogsservice\/operations\/getmaster\/output\/ok-swift.struct\/!=(_:_:)","kind":"symbol","role":"symbol","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":") -> "},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}],"abstract":[{"text":"Returns a Boolean value indicating whether two values are not equal.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output\/Ok-swift.struct\/!=(_:_:)","title":"!=(_:_:)"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetMaster/Output":{"url":"\/documentation\/discogsservice\/operations\/getmaster\/output","kind":"symbol","role":"symbol","type":"topic","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"abstract":[],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetMaster\/Output","navigatorTitle":[{"text":"Output","kind":"identifier"}],"title":"Operations.GetMaster.Output"}}}
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