Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
Igor Urisman authored and Igor Urisman committed Aug 12, 2023
1 parent 58730d3 commit b00dd75
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 202 deletions.
Binary file modified lib/variant-server-extapi-0.10.3.jar
Binary file not shown.
141 changes: 0 additions & 141 deletions src/main/java/com/edulastic/variant/extapi/DurableTargetingHook.java

This file was deleted.

7 changes: 0 additions & 7 deletions src/main/java/com/edulastic/variant/extapi/create.sql

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
import org.slf4j.LoggerFactory;

import com.variant.server.api.Session;
import com.variant.server.api.lifecycle.LifecycleHook;
import com.variant.server.api.lifecycle.VariationQualificationLifecycleEvent;
import com.variant.server.api.lifecycle.*;


/**
Expand All @@ -19,35 +18,23 @@
* </code>
*
*/
public class UserQualificationHook implements LifecycleHook<VariationQualificationLifecycleEvent> {

public class UserQualificationHook implements VariationQualificationLifecycleHook {
private static final Logger LOG = LoggerFactory.getLogger(UserQualificationHook.class);

private final String[] blackList;

public UserQualificationHook(String init) {
blackList = init.split(",");
}

@Override
public Class<VariationQualificationLifecycleEvent> getLifecycleEventClass() {
return VariationQualificationLifecycleEvent.class;
}

@Override
public Optional<VariationQualificationLifecycleEvent.PostResult> post(VariationQualificationLifecycleEvent event) throws Exception {

public Optional<Boolean> post(VariationQualificationLifecycleEvent event) throws Exception {
Session ssn = event.getSession();
String user = ssn.getAttributes().get("user");
if (user == null) throw new RuntimeException("Session attribute 'user' must be set");
boolean blacklisted = Arrays.asList(blackList).contains(user);

if (blacklisted)
LOG.info("Disqualified blacklisted user [" + user + "] from variation " + event.getVariation().getName() + "]");

VariationQualificationLifecycleEvent.PostResult result = event.mkPostResult();
result.setQualified(!blacklisted);
return Optional.of(result);
return Optional.of(!blacklisted);
}

}
42 changes: 6 additions & 36 deletions src/main/java/com/variant/extapi/std/demo/UserTargetingHook.java
Original file line number Diff line number Diff line change
@@ -1,54 +1,24 @@
package com.variant.extapi.std.demo;

import com.variant.server.api.Session;
import com.variant.server.api.lifecycle.LifecycleHook;
import com.variant.server.api.lifecycle.VariationQualificationLifecycleEvent;
import com.variant.server.api.lifecycle.VariationTargetingLifecycleEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.variant.server.api.lifecycle.VariationTargetingLifecycleHook;
import com.variant.share.schema.Variation;

import java.util.Arrays;
import java.util.Optional;


/**
* Life-cycle hook to disqualify blacklisted users.
* The black list of users is given in the hook's initializer object, e.g. as following:
* <code>
* 'init': {'blackList':['Nikita Krushchev']}
* </code>
*
* New demo targeting hook. TBD
*/
public class UserTargetingHook implements LifecycleHook<VariationTargetingLifecycleEvent> {
public class UserTargetingHook implements VariationTargetingLifecycleHook {

private static final Logger LOG = LoggerFactory.getLogger(UserTargetingHook.class);

private final String[] blackList;

public UserTargetingHook(String init) {
blackList = new String[0];
//blackList = config.getList("blackList").stream().map(e -> e.unwrapped()).toArray(String[]::new);
}

@Override
public Class<VariationTargetingLifecycleEvent> getLifecycleEventClass() {
return VariationTargetingLifecycleEvent.class;
}

@Override
public Optional<VariationTargetingLifecycleEvent.PostResult> post(VariationTargetingLifecycleEvent event) {

public Optional<Variation.Experience> post(VariationTargetingLifecycleEvent event) {
Session ssn = event.getSession();
String user = ssn.getAttributes().get("user");

boolean blacklisted = Arrays.stream(blackList).filter(d -> user.equals(d)).findFirst().isPresent();

if (blacklisted)
LOG.info("Disqualified blacklisted user [" + user + "] from variation " + event.getVariation().getName() + "]");

VariationTargetingLifecycleEvent.PostResult result = event.mkPostResult();
// result.setQualified(!blacklisted);
return Optional.of(result);
return Optional.empty();
}

}

0 comments on commit b00dd75

Please sign in to comment.