@@ -100,12 +100,14 @@ function* iterateAllMethods(
100100}
101101
102102function getParameters (
103- method : OpenAPIV3 . HttpMethods ,
104103 operation : AppwriteOperationObject
105104) : SDKMethod [ 'parameters' ] {
106105 const parameters : ReturnType < typeof getParameters > = [ ] ;
107- if ( method === OpenAPIV3 . HttpMethods . GET ) {
108- for ( const parameter of ( operation ?. parameters as OpenAPIV3 . ParameterObject [ ] ) ?? [ ] ) {
106+ const requestBody = operation ?. requestBody as OpenAPIV3 . RequestBodyObject ;
107+ const schemaJson = requestBody ?. content [ 'application/json' ] ?. schema as OpenAPIV3 . SchemaObject ;
108+ const schemaMultipart = requestBody ?. content [ 'multipart/form-data' ] ?. schema as OpenAPIV3 . SchemaObject ;
109+ if ( operation ?. parameters ) {
110+ for ( const parameter of ( operation ?. parameters as OpenAPIV3 . ParameterObject [ ] ) ) {
109111 const schema = parameter . schema as OpenAPIV3 . SchemaObject ;
110112
111113 parameters . push ( {
@@ -116,13 +118,9 @@ function getParameters(
116118 example : schema ?. example
117119 } ) ;
118120 }
119- } else {
120- const requestBody = operation ?. requestBody as OpenAPIV3 . RequestBodyObject ;
121- const schemaJson = requestBody ?. content [ 'application/json' ] ?. schema as OpenAPIV3 . SchemaObject ;
122- const schemaMultipart = requestBody ?. content [ 'multipart/form-data' ] ?. schema as OpenAPIV3 . SchemaObject ;
123-
124- // TODO: make this pretty
125- for ( const [ key , value ] of Object . entries ( schemaJson ?. properties ?? { } ) ) {
121+ }
122+ if ( schemaJson ?. properties ) {
123+ for ( const [ key , value ] of Object . entries ( schemaJson . properties ) ) {
126124 const property = value as AppwriteSchemaObject ;
127125 parameters . push ( {
128126 name : key ,
@@ -132,7 +130,9 @@ function getParameters(
132130 example : property [ 'x-example' ] ?? ''
133131 } ) ;
134132 }
135- for ( const [ key , value ] of Object . entries ( schemaMultipart ?. properties ?? { } ) ) {
133+ }
134+ if ( schemaMultipart ?. properties ) {
135+ for ( const [ key , value ] of Object . entries ( schemaMultipart . properties ) ) {
136136 const property = value as AppwriteSchemaObject ;
137137 parameters . push ( {
138138 name : key ,
@@ -144,7 +144,9 @@ function getParameters(
144144 }
145145 }
146146
147- return parameters ;
147+ return parameters . sort ( ( a , b ) => {
148+ return ( a . required === b . required ) ? 0 : a . required ? - 1 : 1 ;
149+ } ) ;
148150}
149151
150152export function getSchema ( id : string , api : OpenAPIV3 . Document ) : OpenAPIV3 . SchemaObject {
@@ -228,7 +230,7 @@ export async function getService(
228230
229231 for ( const [ method , value ] of iterateAllMethods ( api , service ) ) {
230232 const operation = value as AppwriteOperationObject ;
231- const parameters = getParameters ( method , operation ) ;
233+ const parameters = getParameters ( operation ) ;
232234 const responses : SDKMethod [ 'responses' ] = Object . entries ( operation . responses ?? { } ) . map (
233235 ( tuple ) => {
234236 const [ code , response ] = tuple as [ string , OpenAPIV3 . ResponseObject ] ;
0 commit comments