4
4
const fetch = require ( 'node-fetch' ) ;
5
5
const util = require ( 'util' ) ;
6
6
7
- function main ( obj , config , configName , callback ) {
7
+ function getServer ( prefix ) {
8
+ if ( prefix === 'og' ) {
9
+ return 'https://api.openapi-generator.tech/api/gen/' ;
10
+ }
11
+ else if ( prefix === 'sc' ) {
12
+ return 'https://generator.swagger.io/api/gen/' ;
13
+ }
14
+ console . warn ( 'Unknown API provider prefix' , prefix ) ;
15
+ return false ;
16
+ }
17
+
18
+ async function main ( obj , config , configName , callback ) {
19
+ const components = configName . split ( ':' ) ;
20
+ const prefix = components [ 0 ] ;
21
+ const type = components [ 1 ] ;
22
+ const template = components [ 2 ] ;
23
+ const server = getServer ( prefix ) ;
24
+ const body = { options : { } , spec : obj } ;
25
+ const response = await fetch ( server + type + 's/' + template , {
26
+ method : 'post' ,
27
+ body : JSON . stringify ( body ) ,
28
+ headers : { 'Content-Type' : 'application/json' }
29
+ } )
30
+ . then ( res => res . json ( ) )
31
+ . then ( json => json ) ;
32
+ if ( response . link ) {
33
+ const zipfile = await fetch ( response . link )
34
+ . then ( res => res . buffer ( ) )
35
+ . then ( buffer => buffer ) ;
36
+ callback ( null , zipfile ) ;
37
+ }
38
+ else {
39
+ console . warn ( util . inspect ( response ) ) ;
40
+ }
8
41
}
9
42
10
43
function format ( templates , prefix , type , filter ) {
@@ -29,20 +62,13 @@ async function slurp(server, prefix, type, plural, filter) {
29
62
}
30
63
31
64
async function list ( prefix , filter ) {
32
- let server = '' ;
33
- if ( prefix === 'og' ) {
34
- server = 'https://api.openapi-generator.tech/api/gen/' ;
35
- }
36
- else if ( prefix === 'sc' ) {
37
- server = 'https://generator.swagger.io/api/gen/' ;
38
- }
39
- else {
40
- console . warn ( 'Unknown API provider prefix' , prefix ) ;
41
- return 1 ;
65
+ const server = getServer ( prefix ) ;
66
+ if ( server ) {
67
+ await slurp ( server , prefix , 'client' , 'clients' , filter ) ;
68
+ await slurp ( server , prefix , 'server' , 'servers' , filter ) ;
69
+ return 0 ;
42
70
}
43
- await slurp ( server , prefix , 'client' , 'clients' , filter ) ;
44
- await slurp ( server , prefix , 'server' , 'servers' , filter ) ;
45
- return 0 ;
71
+ return 1 ;
46
72
}
47
73
48
74
module . exports = {
0 commit comments