1919
2020import com .fasterxml .jackson .core .JsonProcessingException ;
2121import com .fasterxml .jackson .databind .ObjectMapper ;
22- import com .featureprobe .sdk .server .exceptions .PrerequisitesDeepOverflowException ;
2322import com .featureprobe .sdk .server .model .Segment ;
2423import com .featureprobe .sdk .server .model .Toggle ;
2524import com .google .common .annotations .VisibleForTesting ;
@@ -243,7 +242,7 @@ public boolean initialized() {
243242 * @param user {@link FPUser}
244243 */
245244 public void track (String eventName , FPUser user ) {
246- eventProcessor .push (new CustomEvent (eventName , user . getKey () , null ));
245+ eventProcessor .push (new CustomEvent (eventName , user , null ));
247246 }
248247
249248 /**
@@ -254,7 +253,7 @@ public void track(String eventName, FPUser user) {
254253 * @param value a numeric value
255254 */
256255 public void track (String eventName , FPUser user , double value ) {
257- eventProcessor .push (new CustomEvent (eventName , user . getKey () , value ));
256+ eventProcessor .push (new CustomEvent (eventName , user , value ));
258257 }
259258
260259 private <T > T jsonEvaluate (String toggleKey , FPUser user , T defaultValue , Class <T > clazz ) {
@@ -266,7 +265,7 @@ private <T> T jsonEvaluate(String toggleKey, FPUser user, T defaultValue, Class<
266265 EvaluationResult evalResult = toggle .eval (user , toggles , segments , defaultValue ,
267266 config .prerequisiteDeep );
268267 String value = mapper .writeValueAsString (evalResult .getValue ());
269- eventProcessor . push ( buildAccessEvent ( toggle , evalResult , user ) );
268+ trackEvent ( toggle , evalResult , user );
270269 return mapper .readValue (value , clazz );
271270 }
272271 } catch (JsonProcessingException e ) {
@@ -285,7 +284,7 @@ private <T> T genericEvaluate(String toggleKey, FPUser user, T defaultValue, Cla
285284 if (Objects .nonNull (toggle )) {
286285 EvaluationResult evalResult = toggle .eval (user , toggles , segments , defaultValue ,
287286 config .prerequisiteDeep );
288- eventProcessor . push ( buildAccessEvent ( toggle , evalResult , user ) );
287+ trackEvent ( toggle , evalResult , user );
289288 return clazz .cast (evalResult .getValue ());
290289 }
291290 } catch (ClassCastException e ) {
@@ -318,9 +317,6 @@ private <T> FPDetail<T> genericEvaluateDetail(String toggleKey, FPUser user, T d
318317 } catch (ClassCastException | JsonProcessingException e ) {
319318 logger .error (LOG_CONVERSION_ERROR , toggleKey , e );
320319 detail .setReason (REASON_TYPE_MISMATCH );
321- } catch (PrerequisitesDeepOverflowException e ) {
322- logger .error (e .getMessage (), toggleKey , e );
323- detail .setReason (e .getMessage ());
324320 } catch (Exception e ) {
325321 logger .error (LOG_HANDLE_ERROR , toggleKey , e );
326322 detail .setReason (REASON_HANDLE_ERROR );
@@ -349,7 +345,7 @@ private <T> FPDetail<T> getEvaluateDetail(String toggleKey, FPUser user, T defau
349345 detail .setReason (evalResult .getReason ());
350346 detail .setRuleIndex (evalResult .getRuleIndex ());
351347 detail .setVersion (Optional .of (evalResult .getVersion ()));
352- eventProcessor . push ( buildAccessEvent ( toggle , evalResult , user ) );
348+ trackEvent ( toggle , evalResult , user );
353349 } else {
354350 detail .setReason ("Toggle not exist" );
355351 detail .setValue (defaultValue );
@@ -361,12 +357,26 @@ private <T> FPDetail<T> getEvaluateDetail(String toggleKey, FPUser user, T defau
361357 return detail ;
362358 }
363359
360+ private void trackEvent (Toggle toggle , EvaluationResult evalResult , FPUser user ) {
361+ eventProcessor .push (buildAccessEvent (toggle , evalResult , user ));
362+ if (Objects .nonNull (dataRepository .getDebugUntilTime ())
363+ && dataRepository .getDebugUntilTime () >= System .currentTimeMillis ()) {
364+ eventProcessor .push (buildDebugEvent (toggle , evalResult , user ));
365+ }
366+ }
367+
364368 private Event buildAccessEvent (Toggle toggle , EvaluationResult evalResult , FPUser user ) {
365369 boolean trackAccessEvents =
366370 Objects .isNull (toggle .getTrackAccessEvents ()) ? false : toggle .getTrackAccessEvents ().booleanValue ();
367- return new AccessEvent (user .getKey (), toggle .getKey (), evalResult .getValue (),
371+ return new AccessEvent (user , toggle .getKey (), evalResult .getValue (),
372+ evalResult .getVersion (), evalResult .getVariationIndex ().orElse (null ),
373+ evalResult .getRuleIndex ().orElse (null ), trackAccessEvents );
374+ }
375+
376+ private Event buildDebugEvent (Toggle toggle , EvaluationResult evalResult , FPUser user ) {
377+ return new DebugEvent (user , toggle .getKey (), evalResult .getValue (),
368378 evalResult .getVersion (), evalResult .getVariationIndex ().orElse (null ),
369- evalResult .getRuleIndex ().orElse (null ), evalResult .getReason (), trackAccessEvents );
379+ evalResult .getRuleIndex ().orElse (null ), evalResult .getReason ());
370380 }
371381
372382}
0 commit comments