@@ -70,6 +70,11 @@ extension APIProtocol {
70
70
method: . put,
71
71
path: server. apiPathComponentsWithServerPrefix ( " /pets/{petId}/avatar " )
72
72
)
73
+ try transport. register (
74
+ { try await server. uploadAudioForPet ( request: $0, body: $1, metadata: $2) } ,
75
+ method: . put,
76
+ path: server. apiPathComponentsWithServerPrefix ( " /pets/{petId}/audio " )
77
+ )
73
78
}
74
79
}
75
80
fileprivate extension UniversalServer where APIHandler: APIProtocol {
@@ -592,4 +597,95 @@ fileprivate extension UniversalServer where APIHandler: APIProtocol {
592
597
}
593
598
)
594
599
}
600
+ /// Upload an audio recording
601
+ ///
602
+ /// - Remark: HTTP `PUT /pets/{petId}/audio`.
603
+ /// - Remark: Generated from `#/paths//pets/{petId}/audio/put(uploadAudioForPet)`.
604
+ func uploadAudioForPet( request: HTTPRequest , body: HTTPBody ? , metadata: ServerRequestMetadata ) async throws -> (
605
+ HTTPResponse , HTTPBody ?
606
+ ) {
607
+ try await handle (
608
+ request: request,
609
+ requestBody: body,
610
+ metadata: metadata,
611
+ forOperation: Operations . uploadAudioForPet. id,
612
+ using: { APIHandler . uploadAudioForPet ( $0) } ,
613
+ deserializer: { request, requestBody, metadata in
614
+ let path : Operations . uploadAudioForPet . Input . Path = . init(
615
+ petId: try converter. getPathParameterAsURI (
616
+ in: metadata. pathParameters,
617
+ name: " petId " ,
618
+ as: Components . Parameters. path_period_petId. self
619
+ )
620
+ )
621
+ let headers : Operations . uploadAudioForPet . Input . Headers = . init(
622
+ accept: try converter. extractAcceptHeaderIfPresent ( in: request. headerFields)
623
+ )
624
+ let contentType = converter. extractContentTypeIfPresent ( in: request. headerFields)
625
+ let body : Operations . uploadAudioForPet . Input . Body
626
+ if try contentType == nil
627
+ || converter. isMatchingContentType ( received: contentType, expectedRaw: " application/json " )
628
+ {
629
+ body = try await converter. getRequiredRequestBodyAsJSON (
630
+ OpenAPIRuntime . Base64EncodedData. self,
631
+ from: requestBody,
632
+ transforming: { value in . json( value) }
633
+ )
634
+ } else {
635
+ throw converter. makeUnexpectedContentTypeError ( contentType: contentType)
636
+ }
637
+ return Operations . uploadAudioForPet. Input ( path: path, headers: headers, body: body)
638
+ } ,
639
+ serializer: { output, request in
640
+ switch output {
641
+ case let . ok( value) :
642
+ suppressUnusedWarning ( value)
643
+ var response = HTTPResponse ( soar_statusCode: 200 )
644
+ suppressMutabilityWarning ( & response)
645
+ let body : HTTPBody
646
+ switch value. body {
647
+ case let . json( value) :
648
+ try converter. validateAcceptIfPresent ( " application/json " , in: request. headerFields)
649
+ body = try converter. setResponseBodyAsJSON (
650
+ value,
651
+ headerFields: & response. headerFields,
652
+ contentType: " application/json; charset=utf-8 "
653
+ )
654
+ }
655
+ return ( response, body)
656
+ case let . preconditionFailed( value) :
657
+ suppressUnusedWarning ( value)
658
+ var response = HTTPResponse ( soar_statusCode: 412 )
659
+ suppressMutabilityWarning ( & response)
660
+ let body : HTTPBody
661
+ switch value. body {
662
+ case let . json( value) :
663
+ try converter. validateAcceptIfPresent ( " application/json " , in: request. headerFields)
664
+ body = try converter. setResponseBodyAsJSON (
665
+ value,
666
+ headerFields: & response. headerFields,
667
+ contentType: " application/json; charset=utf-8 "
668
+ )
669
+ }
670
+ return ( response, body)
671
+ case let . internalServerError( value) :
672
+ suppressUnusedWarning ( value)
673
+ var response = HTTPResponse ( soar_statusCode: 500 )
674
+ suppressMutabilityWarning ( & response)
675
+ let body : HTTPBody
676
+ switch value. body {
677
+ case let . plainText( value) :
678
+ try converter. validateAcceptIfPresent ( " text/plain " , in: request. headerFields)
679
+ body = try converter. setResponseBodyAsBinary (
680
+ value,
681
+ headerFields: & response. headerFields,
682
+ contentType: " text/plain "
683
+ )
684
+ }
685
+ return ( response, body)
686
+ case let . undocumented( statusCode, _) : return ( . init( soar_statusCode: statusCode) , nil )
687
+ }
688
+ }
689
+ )
690
+ }
595
691
}
0 commit comments