@@ -100,61 +100,169 @@ const verification_endpoints = {
100
100
*/
101
101
one_url_request ( source_image_path , isSourceImageUrl , target_image_path , url , api_key ) {
102
102
var bodyFormData = new FormData ( ) ;
103
+ let path_is_url = [ ] ;
104
+ let path_is_relative = [ ] ;
103
105
104
106
if ( isSourceImageUrl ) {
105
- bodyFormData . append ( 'target_image' , fs . createReadStream ( target_image_path ) , { knownLength : fs . statSync ( target_image_path ) . size } ) ;
106
-
107
- return new Promise ( async ( resolve , reject ) => {
108
- await axios . get ( source_image_path , { responseType : 'stream' } )
109
- . then ( async ( response ) => {
110
- let image_extention = response . headers [ 'content-type' ] . split ( "/" ) [ 1 ]
111
- bodyFormData . append ( 'source_image' , response . data , `example.${ image_extention } ` ) ;
112
-
113
- try {
114
- const res = await axios . post ( url , bodyFormData , {
115
- headers : {
116
- ...bodyFormData . getHeaders ( ) ,
117
- "x-api-key" : api_key
118
- } ,
119
- } )
120
-
121
- resolve ( res )
122
- } catch ( error ) {
123
- reject ( error )
124
- }
125
- } )
126
- . catch ( error => {
107
+ path_is_url [ 0 ] = "source_image" ;
108
+ path_is_url [ 1 ] = source_image_path ;
109
+
110
+ path_is_relative [ 0 ] = "target_image" ;
111
+ path_is_relative [ 1 ] = target_image_path ;
112
+ } else {
113
+ path_is_url = "target_image" ;
114
+ path_is_url [ 1 ] = target_image_path ;
115
+
116
+ path_is_relative = "source_image" ;
117
+ path_is_relative [ 1 ] = source_image_path ;
118
+ }
119
+
120
+ bodyFormData . append ( path_is_relative [ 0 ] , fs . createReadStream ( path_is_relative [ 1 ] ) , { knownLength : fs . statSync ( target_image_path ) . size } ) ;
121
+
122
+ return new Promise ( async ( resolve , reject ) => {
123
+ await axios . get ( path_is_url [ 1 ] , { responseType : 'stream' } )
124
+ . then ( async ( response ) => {
125
+ let image_extention = response . headers [ 'content-type' ] . split ( "/" ) [ 1 ]
126
+ bodyFormData . append ( path_is_url [ 0 ] , response . data , `example.${ image_extention } ` ) ;
127
+
128
+ try {
129
+ const res = await axios . post ( url , bodyFormData , {
130
+ headers : {
131
+ ...bodyFormData . getHeaders ( ) ,
132
+ "x-api-key" : api_key
133
+ } ,
134
+ } )
135
+
136
+ resolve ( res )
137
+ } catch ( error ) {
127
138
reject ( error )
128
- } )
129
- } )
130
- } else {
131
- bodyFormData . append ( 'source_image' , fs . createReadStream ( source_image_path ) , { knownLength : fs . statSync ( source_image_path ) . size } ) ;
132
-
133
- return new Promise ( async ( resolve , reject ) => {
134
- await axios . get ( target_image_path , { responseType : 'stream' } )
135
- . then ( async ( response ) => {
136
- let image_extention = response . headers [ 'content-type' ] . split ( "/" ) [ 1 ]
137
- bodyFormData . append ( 'target_image' , response . data , `example.${ image_extention } ` ) ;
138
-
139
- try {
140
- const res = await axios . post ( url , bodyFormData , {
141
- headers : {
142
- ...bodyFormData . getHeaders ( ) ,
143
- "x-api-key" : api_key
144
- } ,
145
- } )
146
-
147
- resolve ( res )
148
- } catch ( error ) {
149
- reject ( error )
150
- }
151
- } )
152
- . catch ( error => {
139
+ }
140
+ } )
141
+ . catch ( error => {
142
+ reject ( error )
143
+ } )
144
+ } )
145
+ } ,
146
+ /**
147
+ * Verify face(s) from given blob data
148
+ * @param {String } source_image_path
149
+ * @param {String } target_image_path
150
+ * @param {Boolean } isSourceBlob
151
+ * @param {String } url
152
+ * @param {String } api_key
153
+ * @returns {Promise }
154
+ */
155
+ url_blob_request ( source_image_path , isSourceImageUrl , target_image_path , url , api_key ) {
156
+ let bodyFormData = new FormData ( ) ;
157
+ let path_is_url = [ ] ;
158
+ let path_is_blob = [ ] ;
159
+
160
+ if ( isSourceImageUrl ) {
161
+ path_is_url [ 0 ] = "source_image" ;
162
+ path_is_url [ 1 ] = source_image_path ;
163
+
164
+ path_is_blob [ 0 ] = "target_image" ;
165
+ path_is_blob [ 1 ] = target_image_path ;
166
+ } else {
167
+ path_is_url = "target_image" ;
168
+ path_is_url [ 1 ] = target_image_path ;
169
+
170
+ path_is_blob = "source_image" ;
171
+ path_is_blob [ 1 ] = source_image_path ;
172
+ }
173
+ bodyFormData . append ( path_is_blob [ 0 ] , path_is_blob [ 1 ] , 'example.jpg' ) ;
174
+
175
+ return new Promise ( async ( resolve , reject ) => {
176
+ await axios . get ( path_is_url [ 1 ] , { responseType : 'stream' } )
177
+ . then ( async ( response ) => {
178
+ let image_extention = response . headers [ 'content-type' ] . split ( "/" ) [ 1 ]
179
+ bodyFormData . append ( path_is_url [ 0 ] , response . data , `example.${ image_extention } ` ) ;
180
+
181
+ try {
182
+ const res = await axios . post ( url , bodyFormData , {
183
+ headers : {
184
+ ...bodyFormData . getHeaders ( ) ,
185
+ "x-api-key" : api_key
186
+ } ,
187
+ } )
188
+
189
+ resolve ( res )
190
+ } catch ( error ) {
153
191
reject ( error )
154
- } )
155
- } )
192
+ }
193
+ } )
194
+ . catch ( error => {
195
+ reject ( error )
196
+ } )
197
+ } )
198
+ } ,
199
+
200
+ /**
201
+ * Both source and target images are blob
202
+ * @param {Blob } source_image_blob
203
+ * @param {Blob } target_image_blob
204
+ * @param {String } url
205
+ * @param {String } api_key
206
+ */
207
+ both_blob_request ( source_image_blob , target_image_blob , url , api_key ) {
208
+ var bodyFormData = new FormData ( ) ;
209
+
210
+ bodyFormData . append ( 'source_image' , source_image_blob , 'example.jpg' ) ;
211
+ bodyFormData . append ( 'target_image' , target_image_blob , 'example1.jpg' ) ;
212
+
213
+ return new Promise ( async ( resolve , reject ) => {
214
+ try {
215
+ const response = await axios . post ( url , bodyFormData , {
216
+ headers : {
217
+ 'Content-Type' : 'multipart/form-data' ,
218
+ "x-api-key" : api_key
219
+ } ,
220
+ } )
221
+
222
+ resolve ( response )
223
+ } catch ( error ) {
224
+ reject ( error )
225
+ }
226
+ } )
227
+ } ,
228
+
229
+ one_blob_request ( source_image_path , isSourceImageBlob , target_image_path , url , api_key ) {
230
+ var bodyFormData = new FormData ( ) ;
231
+ let path_is_blob = [ ] ;
232
+ let path_is_relative = [ ] ;
233
+
234
+ if ( isSourceImageBlob ) {
235
+ path_is_blob [ 0 ] = "source_image" ;
236
+ path_is_blob [ 1 ] = source_image_path ;
237
+
238
+ path_is_relative [ 0 ] = "target_image" ;
239
+ path_is_relative [ 1 ] = target_image_path ;
240
+ } else {
241
+ path_is_blob = "target_image" ;
242
+ path_is_blob [ 1 ] = target_image_path ;
243
+
244
+ path_is_relative = "source_image" ;
245
+ path_is_relative [ 1 ] = source_image_path ;
156
246
}
157
- }
247
+
248
+ bodyFormData . append ( path_is_relative [ 0 ] , fs . createReadStream ( path_is_relative [ 1 ] ) , { knownLength : fs . statSync ( target_image_path ) . size } ) ;
249
+ bodyFormData . append ( path_is_blob [ 0 ] , path_is_blob [ 1 ] , 'example.jpg' ) ;
250
+
251
+ return new Promise ( async ( resolve , reject ) => {
252
+ try {
253
+ const response = await axios . post ( url , bodyFormData , {
254
+ headers : {
255
+ 'Content-Type' : 'multipart/form-data' ,
256
+ "x-api-key" : api_key
257
+ } ,
258
+ } )
259
+
260
+ resolve ( response )
261
+ } catch ( error ) {
262
+ reject ( error )
263
+ }
264
+ } )
265
+ } ,
158
266
159
267
160
268
}
0 commit comments