Skip to content

Instantly share code, notes, and snippets.

@jschmid
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jschmid/f0a4e125b9db1fd6f750 to your computer and use it in GitHub Desktop.
Save jschmid/f0a4e125b9db1fd6f750 to your computer and use it in GitHub Desktop.
Couchbase chat sync function
function(doc, oldDoc) {
if(doc._deleted) {
if(oldDoc.type == "chatroom") {
requireUser(oldDoc.user);
var roomId = oldDoc._id;
var roomMembers = oldDoc.members;
var roomChannel = "room-" + roomId;
channel(roomChannel);
access(roomMembers, roomChannel);
} else if (oldDoc.type == "message") {
requireUser(oldDoc.user);
var roomId = oldDoc.room;
var messageChannel = "room-" + roomId;
channel(messageChannel);
}
return;
}
if(doc.type == "chatroom") {
var roomId = doc._id;
var roomMembers = doc.members;
var roomChannel = "room-" + roomId;
channel(roomChannel);
access(roomMembers, roomChannel);
} else if(doc.type == "message") {
// A user can only update its own messages
if(oldDoc) {
requireUser(oldDoc.user);
}
var roomId = doc.room;
var messageChannel = "room-" + roomId;
channel(messageChannel);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment