@@ -255,6 +255,28 @@ export default class httpClient {
255255 }
256256 } , ctx . log )
257257 }
258+
259+ processSnapshotCaps ( ctx : Context , snapshot : ProcessedSnapshot , snapshotUuid : string , capsBuildId : string , capsProjectToken : string ) {
260+ return this . request ( {
261+ url : `/build/${ capsBuildId } /snapshot` ,
262+ method : 'POST' ,
263+ headers : {
264+ 'Content-Type' : 'application/json' ,
265+ projectToken : capsProjectToken !== '' ? capsProjectToken : this . projectToken
266+ } ,
267+ data : {
268+ name : snapshot . name ,
269+ url : snapshot . url ,
270+ snapshotUuid : snapshotUuid ,
271+ test : {
272+ type : ctx . testType ,
273+ source : 'cli'
274+ } ,
275+ async : false ,
276+ }
277+ } , ctx . log )
278+ }
279+
258280 uploadSnapshotForCaps ( ctx : Context , snapshot : ProcessedSnapshot , capsBuildId : string , capsProjectToken : string ) {
259281 // Use capsBuildId if provided, otherwise fallback to ctx.build.id
260282 const buildId = capsBuildId !== '' ? capsBuildId : ctx . build . id ;
@@ -371,6 +393,22 @@ export default class httpClient {
371393 } , ctx . log )
372394 }
373395
396+ getS3PresignedURLForSnapshotUploadCaps ( ctx : Context , snapshotName : string , snapshotUuid : string , capsBuildId : string , capsProjectToken : string ) {
397+ return this . request ( {
398+ url : `/snapshotuploadurl` ,
399+ method : 'POST' ,
400+ headers : {
401+ 'Content-Type' : 'application/json' ,
402+ projectToken : capsProjectToken !== '' ? capsProjectToken : this . projectToken
403+ } ,
404+ data : {
405+ buildId : capsBuildId ,
406+ snapshotName : snapshotName ,
407+ snapshotUuid : snapshotUuid
408+ }
409+ } , ctx . log )
410+ }
411+
374412 uploadLogs ( ctx : Context , uploadURL : string ) {
375413 const fileStream = fs . createReadStream ( constants . LOG_FILE_PATH ) ;
376414 const { size } = fs . statSync ( constants . LOG_FILE_PATH ) ;
@@ -401,6 +439,20 @@ export default class httpClient {
401439 } , ctx . log )
402440 }
403441
442+ uploadSnapshotToS3Caps ( ctx : Context , uploadURL : string , snapshot : Snapshot , capsProjectToken : string ) {
443+ return this . request ( {
444+ url : uploadURL ,
445+ method : 'PUT' ,
446+ headers : {
447+ 'Content-Type' : 'application/json' ,
448+ projectToken : capsProjectToken !== '' ? capsProjectToken : this . projectToken
449+ } ,
450+ data : snapshot ,
451+ maxBodyLength : Infinity , // prevent axios from limiting the body size
452+ maxContentLength : Infinity , // prevent axios from limiting the content size
453+ } , ctx . log )
454+ }
455+
404456 processWebFigma ( requestBody : any , log : Logger ) {
405457 return this . request ( {
406458 url : "figma-web/upload" ,
0 commit comments