Ejemplo n.º 1
0
  asset.increment('views').complete(function(err) {
    if (err) {
      log.error({'err': err, 'id': asset.id}, 'Failed to increase the views on an asset');
      return callback({'code': 500, 'msg': err.message});
    }

    ActivitiesAPI.createActivity(ctx.course, ctx.user, 'view_asset', asset.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.ASSET, null, null, function(err, viewActivity) {
      if (err) {
        log.error({'user': ctx.user, 'err': err}, 'Failed to create activity \'view_asset\' for user');
        return callback(err);
      }
      if (!viewActivity) {
        log.error({'user': ctx.user, 'assetId': asset.id}, 'Failed to retrieve newly created view activity');
        return callback({'code': 500, 'msg': 'Failed to retrieve newly created view activity'});
      }

      createGetViewActivities(ctx, asset, viewActivity.id, function(err) {
        if (err) {
          return callback(err);
        }

        return callback(null, asset);
      });
    });
  });
Ejemplo n.º 2
0
var createCommentActivityAssetComment = function(ctx, asset, comment, parent, callback) {
  // We create an `asset_comment` activity for the commenter if:
  //  - they are not the asset owner or
  //  - they are replying to another user
  var isAssetOwner = _.find(asset.users, {'id': ctx.user.id});
  if (!isAssetOwner || (parent && ctx.user.id !== parent.user.id)) {
    var metadata = {'assetId': asset.id};
    return ActivitiesAPI.createActivity(ctx.course, ctx.user, 'asset_comment', comment.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.COMMENT, metadata, null, callback);
  } else {
    return callback();
  }
};
Ejemplo n.º 3
0
  _.each(asset.users, function(user) {
    ActivitiesAPI.createActivity(ctx.course, user, type, asset.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.ASSET, metadata, ctx.user, function(err) {
      if (err) {
        log.error({
          'err': err,
          'user': user.id
        }, 'Failed to create the get_like or get_dislike activities on an asset for a user');
        return errorCallback(err);
      }

      return done();
    });
  });
Ejemplo n.º 4
0
 _.each(asset.users, function(user) {
   ActivitiesAPI.createActivity(ctx.course, user, 'get_view_asset', asset.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.ASSET, metadata, ctx.user, function(err) {
     if (err) {
       log.error({
         'err': err,
         'user': user.id,
         'asset': asset.id
       }, 'Failed to create a get_view_asset activity');
       return errorCallback(err);
     }
     return done();
   });
 });
Ejemplo n.º 5
0
var createCommentActivityGetAssetCommentReply = function(ctx, asset, comment, parent, reciprocalId, callback) {
  // We create an `get_asset_comment_reply` activity for the parent commenter if:
  //  - there is a parent comment and
  //  - the parent commenter is another user
  if (parent && ctx.user.id !== parent.user.id) {
    var metadata = {'assetId': asset.id};
    if (reciprocalId) {
      metadata.reciprocalId = reciprocalId;
    }
    return ActivitiesAPI.createActivity(ctx.course, parent.user, 'get_asset_comment_reply', parent.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.COMMENT, metadata, ctx.user, callback);
  } else {
    return callback();
  }
};
Ejemplo n.º 6
0
    _.each(asset.users, function(assetUser) {
      ActivitiesAPI.createActivity(ctx.course, assetUser, 'get_asset_comment', comment.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.COMMENT, metadata, ctx.user, function(err) {
        if (err) {
          log.error({
            'err': err,
            'comment': comment.id,
            'user': assetUser.id
          }, 'Failed to create a get_asset_comment activity, the engagement index is now out of sync');
          return errorCallback();
        }

        done();
      });
    });
Ejemplo n.º 7
0
  _.each(asset.users, function(user) {
    // If the user is among the asset creators, skip activity creation for that user only.
    if (user.id === ctx.user.id) {
      return done();
    }

    ActivitiesAPI.createActivity(ctx.course, user, 'get_remix_whiteboard', asset.id, CollabosphereConstants.ACTIVITY.OBJECT_TYPES.ASSET, metadata, ctx.user, function(err) {
      if (err) {
        log.error({
          'err': err,
          'user': user.id,
          'asset': asset.id
        }, 'Failed to create a get_remix_whiteboard activity');
        return errorCallback(err);
      }
      return done();
    });
  });