overleaf/services/web/app/coffee/Features/Notifications/NotificationsBuilder.coffee

32 lines
1.3 KiB
CoffeeScript
Raw Normal View History

2016-06-15 12:38:02 -04:00
logger = require("logger-sharelatex")
NotificationsHandler = require("./NotificationsHandler")
module.exports =
2016-08-11 09:04:11 -04:00
# Note: notification keys should be url-safe
groupPlan: (user, licence)->
key : "join-sub-#{licence.subscription_id}"
create: (callback = ->)->
messageOpts =
groupName: licence.name
subscription_id: licence.subscription_id
2016-06-15 12:38:02 -04:00
logger.log user_id:user._id, key:key, "creating notification key for user"
NotificationsHandler.createNotification user._id, @key, "notification_group_invite", messageOpts, null, false, callback
read: (callback = ->)->
NotificationsHandler.markAsReadWithKey user._id, @key, callback
projectInvite: (invite, project, sendingUser, user) ->
key: "project-invite-#{invite._id}"
create: (callback=()->) ->
messageOpts =
userName: sendingUser.first_name
projectName: project.name
projectId: project._id.toString()
token: invite.token
logger.log {user_id: user._id, project_id: project._id, invite_id: invite._id, key: @key}, "creating project invite notification for user"
NotificationsHandler.createNotification user._id, @key, "notification_project_invite", messageOpts, invite.expires, true, callback
read: (callback=()->) ->
2016-08-11 09:04:11 -04:00
NotificationsHandler.markAsReadByKeyOnly @key, callback