1414import com .skyflow .generated .rest .types .*;
1515import com .skyflow .logs .ErrorLogs ;
1616import com .skyflow .logs .InfoLogs ;
17+ import com .skyflow .logs .WarningLogs ;
1718import com .skyflow .serviceaccount .util .BearerToken ;
1819import com .skyflow .serviceaccount .util .Token ;
1920import com .skyflow .utils .logger .LogUtil ;
@@ -165,7 +166,7 @@ public static InsertResponse buildInsertResponse(V1InsertResponse res) {
165166 ArrayList <HashMap <String , Object >> insertedFields = new ArrayList <>();
166167 ArrayList <HashMap <String , Object >> errors = new ArrayList <>();
167168
168- if (res .getRecords ().isPresent ()) {
169+ if (res != null && res .getRecords ().isPresent ()) {
169170 for (V1RecordResponseObject record : res .getRecords ().get ()) {
170171 if (record .getError ().isPresent ()) {
171172 HashMap <String , Object > errorRecord = new HashMap <>();
@@ -215,7 +216,7 @@ public static DetokenizeResponse buildDetokenizeResponse(V1FlowDetokenizeRespons
215216 ArrayList <DetokenizeRecordResponse > detokenizedFields = new ArrayList <>();
216217 ArrayList <DetokenizeRecordResponse > errors = new ArrayList <>();
217218
218- if (res .getResponse ().isPresent ()) {
219+ if (res != null && res .getResponse ().isPresent ()) {
219220 for (V1FlowDetokenizeResponseObject record : res .getResponse ().get ()) {
220221 String token = record .getToken ().orElse (null );
221222 String tokenGroupName = record .getTokenGroupName ().orElse (null );
@@ -230,4 +231,99 @@ public static DetokenizeResponse buildDetokenizeResponse(V1FlowDetokenizeRespons
230231 }
231232 return new DetokenizeResponse (detokenizedFields , errors );
232233 }
234+
235+ public static com .skyflow .generated .rest .resources .flowservice .requests .V1FlowDeleteTokenRequest getDeleteTokensRequestBody (DeleteTokensRequest request , String vaultid ) {
236+ return com .skyflow .generated .rest .resources .flowservice .requests .V1FlowDeleteTokenRequest .builder ()
237+ .vaultId (vaultid )
238+ .tokens (request .getTokens ())
239+ .build ();
240+ }
241+ private static String extractRequestId (Map <String , List <String >> headers ) {
242+ if (headers == null ) return null ;
243+ List <String > ids = headers .get (BaseConstants .REQUEST_ID_HEADER_KEY );
244+ return (ids == null || ids .isEmpty ()) ? null : ids .get (0 );
245+ }
246+
247+ public static DeleteTokensResponse buildDeleteTokensResponse (V1FlowDeleteTokenResponse res , Map <String , List <String >> headers , int requestedTokenCount ) {
248+ ArrayList <String > deletedTokens = new ArrayList <>();
249+ ArrayList <HashMap <String , Object >> errors = new ArrayList <>();
250+ String requestId = extractRequestId (headers );
251+ if (res != null && res .getTokens ().isPresent ()) {
252+ for (V1DeleteTokenResponseObject record : res .getTokens ().get ()) {
253+ if (record .getError ().isPresent ()) {
254+ HashMap <String , Object > errorRecord = new HashMap <>();
255+ errorRecord .put ("error" , record .getError ().get ());
256+ record .getHttpCode ().ifPresent (httpCode -> errorRecord .put ("httpCode" , httpCode ));
257+ errorRecord .put ("requestId" , requestId );
258+ errors .add (errorRecord );
259+ } else {
260+ record .getValue ().ifPresent (deletedTokens ::add );
261+ }
262+ }
263+ if (deletedTokens .size () + errors .size () != requestedTokenCount ) {
264+ LogUtil .printWarningLog (WarningLogs .INCOMPLETE_DELETE_TOKENS_RESPONSE .getLog ());
265+ }
266+ } else {
267+ LogUtil .printWarningLog (WarningLogs .EMPTY_DELETE_TOKENS_RESPONSE .getLog ());
268+ }
269+ return new DeleteTokensResponse (deletedTokens , errors );
270+ }
271+
272+ public static com .skyflow .generated .rest .resources .flowservice .requests .V1FlowTokenizeRequest getTokenizeRequestBody (TokenizeRequest request , String vaultid ) {
273+ List <V1FlowTokenizeRequestObject > dataList = new ArrayList <>();
274+ for (TokenizeRecord record : request .getData ()) {
275+ V1FlowTokenizeRequestObject obj = V1FlowTokenizeRequestObject .builder ()
276+ .value (record .getValue ())
277+ .tokenGroupNames (record .getTokenGroupNames ())
278+ .build ();
279+ dataList .add (obj );
280+ }
281+ return com .skyflow .generated .rest .resources .flowservice .requests .V1FlowTokenizeRequest .builder ()
282+ .vaultId (vaultid )
283+ .data (dataList )
284+ .build ();
285+ }
286+
287+ public static TokenizeResponse buildTokenizeResponse (V1FlowTokenizeResponse res , Map <String , List <String >> headers , int requestedRecordCount ) {
288+ List <TokenizeData > tokenizedData = new ArrayList <>();
289+ ArrayList <HashMap <String , Object >> errors = new ArrayList <>();
290+ String requestId = extractRequestId (headers );
291+ if (res != null && res .getResponse ().isPresent ()) {
292+ List <V1FlowTokenizeResponseObject > records = res .getResponse ().get ();
293+ int indexNumber = 0 ;
294+ for (V1FlowTokenizeResponseObject record : records ) {
295+ Object value = record .getValue ().orElse (null );
296+ TokenizeData tokenizeData = new TokenizeData (value , indexNumber );
297+ boolean hasAnySuccess = false ;
298+ if (record .getTokens ().isPresent ()) {
299+ for (FlowTokenizeResponseObjectToken tokenObj : record .getTokens ().get ()) {
300+ if (tokenObj .getError ().isPresent ()) {
301+ HashMap <String , Object > errorRecord = new HashMap <>();
302+ errorRecord .put ("error" , tokenObj .getError ().get ());
303+ tokenObj .getHttpCode ().ifPresent (httpCode -> errorRecord .put ("httpCode" , httpCode ));
304+ tokenObj .getTokenGroupName ().ifPresent (name -> errorRecord .put ("tokenGroupName" , name ));
305+ errorRecord .put ("index" , indexNumber );
306+ errorRecord .put ("requestId" , requestId );
307+ errors .add (errorRecord );
308+ } else if (tokenObj .getTokenGroupName ().isPresent () && tokenObj .getToken ().isPresent ()) {
309+ tokenizeData .addToken (tokenObj .getTokenGroupName ().get (), tokenObj .getToken ().get ());
310+ hasAnySuccess = true ;
311+ }
312+ }
313+ }
314+ if (hasAnySuccess ) {
315+ tokenizedData .add (tokenizeData );
316+ }
317+ indexNumber ++;
318+ }
319+ if (indexNumber != requestedRecordCount ) {
320+ LogUtil .printWarningLog (WarningLogs .INCOMPLETE_TOKENIZE_RESPONSE .getLog ());
321+ }
322+ } else {
323+ LogUtil .printWarningLog (WarningLogs .EMPTY_TOKENIZE_RESPONSE .getLog ());
324+ }
325+ TokenizeResponse tokenizeResponse = new TokenizeResponse (errors );
326+ tokenizeResponse .setTokenizedData (tokenizedData );
327+ return tokenizeResponse ;
328+ }
233329}
0 commit comments