Created
June 2, 2016 20:53
-
-
Save anonymous/1e215773e16f4960a352f91b250f31c8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MixpanelService { | |
static transactional = false | |
def grailsApplication | |
def springSecurityService | |
void createOrUpdateUserProfile(User user) { | |
if(Environment.current != Environment.TEST) { | |
Executors.newFixedThreadPool(1).execute({ | |
User.withNewSession { | |
user = User.get(user.id) | |
MessageBuilder messageBuilder = new MessageBuilder(MIXPANEL_TOKEN) | |
JSONObject props = new JSONObject() | |
props.put('$name', user.fullName) | |
props.put('$email', user.email) | |
props.put('$distinct_id', user.id) | |
props.put('Date created', user.dateCreated) | |
props.put('Role', user.authorities*.authority?.join(',')) | |
new MixpanelAPI().sendMessage(messageBuilder.set(user.id.toString(), props)) | |
} | |
}) | |
} | |
} | |
void sendViewInfo(String eventType, String url) { | |
Long userId = springSecurityService.currentUser?.id | |
Executors.newFixedThreadPool(1).execute({ | |
try { | |
User.withNewSession { | |
User user = userId ? User.read(userId) : null | |
MessageBuilder messageBuilder = new MessageBuilder(MIXPANEL_TOKEN) | |
JSONObject props = new JSONObject() | |
props.put('Event Type', eventType) | |
props.put('URL', url) | |
ClientDelivery delivery = new ClientDelivery() | |
delivery.addMessage(messageBuilder.event(user?.id?.toString(), eventType, props)) | |
new MixpanelAPI().deliver(delivery) | |
} | |
} catch (Throwable e) { | |
log.error("Failed to sent mixpanel info(eventType: ${eventType}, button: ${button}, url: ${url}) caused: ${e.message}", e) | |
} | |
}) | |
} | |
private void send(JSONObject newNotification) { | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment