From 9d6e5fe20b97baebd1e4a6ecb2eb1f821983b457 Mon Sep 17 00:00:00 2001
From: Matt Lott <mattlott@live.com>
Date: Mon, 6 Apr 2015 16:27:56 -0700
Subject: [PATCH] Clan analytics

Hook up server-side operations.
---
 server/clans/clan_handler.coffee | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/server/clans/clan_handler.coffee b/server/clans/clan_handler.coffee
index 6e92bc509..d0f221518 100644
--- a/server/clans/clan_handler.coffee
+++ b/server/clans/clan_handler.coffee
@@ -1,6 +1,7 @@
 async = require 'async'
 mongoose = require 'mongoose'
 Handler = require '../commons/Handler'
+AnalyticsLogEvent = require '../analytics/AnalyticsLogEvent'
 Clan = require './Clan'
 EarnedAchievement = require '../achievements/EarnedAchievement'
 EarnedAchievementHandler = require '../achievements/earned_achievement_handler'
@@ -45,6 +46,7 @@ ClanHandler = class ClanHandler extends Handler
         User.update {_id: {$in: memberIDs}}, {$pull: {clans: clan.get('_id')}}, {multi: true}, (err) =>
           return @sendDatabaseError(res, err) if err
           @sendNoContent(res)
+          AnalyticsLogEvent.logEvent req.user, 'Clan deleted', clanID: clanID, type: clan.get('type')
 
   getByRelationship: (req, res, args...) ->
     return @joinClan(req, res, args[0]) if args[1] is 'join'
@@ -67,6 +69,7 @@ ClanHandler = class ClanHandler extends Handler
       User.update {_id: req.user._id}, {$addToSet: {clans: clanID}}, (err) =>
         return @sendDatabaseError(res, err) if err
         @sendSuccess(res)
+        AnalyticsLogEvent.logEvent req.user, 'Clan joined', clanID: clanID, type: 'public'
 
   leaveClan: (req, res, clanID) ->
     return @sendForbiddenError(res) unless req.user? and not req.user.isAnonymous()
@@ -83,6 +86,7 @@ ClanHandler = class ClanHandler extends Handler
         User.update {_id: req.user._id}, {$pull: {clans: clanID}}, (err) =>
           return @sendDatabaseError(res, err) if err
           @sendSuccess(res)
+          AnalyticsLogEvent.logEvent req.user, 'Clan left', clanID: clanID, type: clan.get('type')
 
   getMemberAchievements: (req, res, clanID) ->
     # TODO: add tests
@@ -144,5 +148,6 @@ ClanHandler = class ClanHandler extends Handler
         User.update {_id: memberID}, {$pull: {clans: clanID}}, (err) =>
           return @sendDatabaseError(res, err) if err
           @sendSuccess(res)
+          AnalyticsLogEvent.logEvent req.user, 'Clan member removed', clanID: clanID, type: clan.get('type'), memberID: memberID
 
 module.exports = new ClanHandler()