Implemented the Marketplace endpoints (#15)

This PR contains the work done to implement the *Marketplace* endpoints for the **Discogs API** backend service, which include the following endpoints:
* GET `/users/{username}/inventory` endpoint
* GET `/marketplace/listings/{listing_id}` endpoint
* DELETE `/marketplace/listings/{listing_id}` endpoint
* POST `/marketplace/listings/{listing_id}` endpoint
* POST `/marketplace/listings` endpoint
* GET `/marketplace/orders` endpoint
* GET `/marketplace/orders/{order_id}` endpoint
* GET `/marketplace/orders/{order_id}/messages` endpoint
* POST `/marketplace/orders/{order_id}/messages` endpoint
* GET `/marketplace/fee/{price}` endpoint
* GET `/marketplace/fee/{price}/{currency}` endpoint
* GET `/marketplace/price_suggestions/{release_id}` endpoint
* GET `/marketplace/stats/{release_id}` endpoint

Reviewed-on: #15
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 #15.
This commit is contained in:
2025-11-10 00:34:18 +00:00
committed by Javier Cicchelli
parent 63118db805
commit a0672cc4af
8111 changed files with 9517 additions and 4502 deletions
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"sections":[],"kind":"article","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Equatable-Implementations"},"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output"]]},"schemaVersion":{"patch":0,"minor":3,"major":0},"metadata":{"modules":[{"name":"DiscogsService"}],"roleHeading":"API Collection","title":"Equatable Implementations","role":"collectionGroup"},"topicSections":[{"generated":true,"title":"Operators","anchor":"Operators","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/!=(_:_:)"]}],"variants":[{"paths":["\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output","kind":"symbol","abstract":[],"type":"topic","role":"symbol","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","navigatorTitle":[{"text":"Output","kind":"identifier"}],"title":"Operations.GetCollectionValue.Output"},"doc://DiscogsService/documentation/DiscogsService":{"url":"\/documentation\/discogsservice","role":"collection","abstract":[],"title":"DiscogsService","type":"topic","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue","kind":"symbol","abstract":[{"type":"text","text":"Get the estimated monetary value for a collection of a user."}],"type":"topic","role":"symbol","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GetCollectionValue","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","navigatorTitle":[{"text":"GetCollectionValue","kind":"identifier"}],"title":"Operations.GetCollectionValue"},"doc://DiscogsService/documentation/DiscogsService/Operations":{"kind":"symbol","navigatorTitle":[{"text":"Operations","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Operations","kind":"identifier"}],"role":"symbol","type":"topic","title":"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"}],"url":"\/documentation\/discogsservice\/operations"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/!=(_:_:)":{"type":"topic","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/!=(_:_:)","abstract":[{"text":"Returns a Boolean value indicating whether two values are not equal.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/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"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"role":"symbol","kind":"symbol","title":"!=(_:_:)"}}}
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/equatable-implementations"]}],"metadata":{"role":"collectionGroup","title":"Equatable Implementations","roleHeading":"API Collection","modules":[{"name":"DiscogsService"}]},"schemaVersion":{"minor":3,"major":0,"patch":0},"kind":"article","identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Equatable-Implementations","interfaceLanguage":"swift"},"sections":[],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output"]]},"topicSections":[{"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/!=(_:_:)"],"title":"Operators","anchor":"Operators","generated":true}],"references":{"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output":{"abstract":[],"kind":"symbol","type":"topic","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","title":"Operations.GetCollectionValue.Output","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Output"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Output"}]},"doc://DiscogsService/documentation/DiscogsService/Operations":{"type":"topic","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"text":"Operations","kind":"identifier"}],"navigatorTitle":[{"kind":"identifier","text":"Operations"}],"title":"Operations","url":"\/documentation\/discogsservice\/operations","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/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"}],"kind":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/!=(_:_:)":{"kind":"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"}],"abstract":[{"text":"Returns a Boolean value indicating whether two values are not equal.","type":"text"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/!=(_:_:)","title":"!=(_:_:)","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/!=(_:_:)","role":"symbol","type":"topic"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue","title":"Operations.GetCollectionValue","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"GetCollectionValue"}],"navigatorTitle":[{"kind":"identifier","text":"GetCollectionValue"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","kind":"symbol","abstract":[{"type":"text","text":"Get the estimated monetary value for a collection of a user."}],"type":"topic"},"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","url":"\/documentation\/discogsservice","abstract":[],"role":"collection","kind":"symbol","type":"topic"}}}
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
@@ -1 +1 @@
{"metadata":{"role":"collectionGroup","roleHeading":"API Collection","title":"Equatable Implementations","modules":[{"name":"DiscogsService"}]},"sections":[],"variants":[{"paths":["\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct"]]},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"schemaVersion":{"minor":3,"major":0,"patch":0},"topicSections":[{"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/!=(_:_:)"],"generated":true,"title":"Operators","anchor":"Operators"}],"kind":"article","references":{"doc://DiscogsService/documentation/DiscogsService":{"url":"\/documentation\/discogsservice","role":"collection","abstract":[],"title":"DiscogsService","type":"topic","kind":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/Ok-swift.struct/!=(_:_:)":{"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/!=(_:_:)","kind":"symbol","abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}],"title":"!=(_:_:)","role":"symbol","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct\/!=(_:_:)","fragments":[{"text":"static","kind":"keyword"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"kind":"text","text":", "},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}],"type":"topic"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output","kind":"symbol","abstract":[],"type":"topic","role":"symbol","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Output","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","navigatorTitle":[{"text":"Output","kind":"identifier"}],"title":"Operations.GetCollectionValue.Output"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue","kind":"symbol","abstract":[{"type":"text","text":"Get the estimated monetary value for a collection of a user."}],"type":"topic","role":"symbol","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GetCollectionValue","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","navigatorTitle":[{"text":"GetCollectionValue","kind":"identifier"}],"title":"Operations.GetCollectionValue"},"doc://DiscogsService/documentation/DiscogsService/Operations":{"kind":"symbol","navigatorTitle":[{"text":"Operations","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Operations","kind":"identifier"}],"role":"symbol","type":"topic","title":"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"}],"url":"\/documentation\/discogsservice\/operations"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/Ok-swift.struct":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct","kind":"symbol","abstract":[],"type":"topic","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Ok","kind":"identifier"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct","navigatorTitle":[{"text":"Ok","kind":"identifier"}],"title":"Operations.GetCollectionValue.Output.Ok"}}}
{"kind":"article","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct\/equatable-implementations"]}],"metadata":{"role":"collectionGroup","roleHeading":"API Collection","modules":[{"name":"DiscogsService"}],"title":"Equatable Implementations"},"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"sections":[],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"topicSections":[{"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/!=(_:_:)"],"generated":true,"anchor":"Operators","title":"Operators"}],"references":{"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","url":"\/documentation\/discogsservice","abstract":[],"role":"collection","kind":"symbol","type":"topic"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/Ok-swift.struct":{"abstract":[],"kind":"symbol","title":"Operations.GetCollectionValue.Output.Ok","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct","type":"topic","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Ok"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Ok"}]},"doc://DiscogsService/documentation/DiscogsService/Operations":{"type":"topic","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"text":"Operations","kind":"identifier"}],"navigatorTitle":[{"kind":"identifier","text":"Operations"}],"title":"Operations","url":"\/documentation\/discogsservice\/operations","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/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"}],"kind":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output/Ok-swift.struct/!=(_:_:)":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output\/ok-swift.struct\/!=(_:_:)","kind":"symbol","title":"!=(_:_:)","abstract":[{"type":"text","text":"Returns a Boolean value indicating whether two values are not equal."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output\/Ok-swift.struct\/!=(_:_:)","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","text":"Bool","preciseIdentifier":"s:Sb"}],"role":"symbol"},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue/Output":{"abstract":[],"kind":"symbol","type":"topic","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue\/Output","title":"Operations.GetCollectionValue.Output","url":"\/documentation\/discogsservice\/operations\/getcollectionvalue\/output","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Output"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Output"}]},"doc://DiscogsService/documentation/DiscogsService/Operations/GetCollectionValue":{"url":"\/documentation\/discogsservice\/operations\/getcollectionvalue","title":"Operations.GetCollectionValue","role":"symbol","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"GetCollectionValue"}],"navigatorTitle":[{"kind":"identifier","text":"GetCollectionValue"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Operations\/GetCollectionValue","kind":"symbol","abstract":[{"type":"text","text":"Get the estimated monetary value for a collection of a user."}],"type":"topic"}}}
File diff suppressed because one or more lines are too long