Add an appendText API

This commit is contained in:
Ted Mielczarek 2015-10-19 12:58:47 -04:00
parent 504cc102a0
commit a675659dc2
4 changed files with 126 additions and 3 deletions

View file

@ -307,6 +307,38 @@ exports.setText = function(padID, text, callback)
});
}
/**
appendText(padID, text) appends text to a pad
Example returns:
{code: 0, message:"ok", data: null}
{code: 1, message:"padID does not exist", data: null}
{code: 1, message:"text too long", data: null}
*/
exports.appendText = function(padID, text, callback)
{
//text is required
if(typeof text != "string")
{
callback(new customError("text is no string","apierror"));
return;
}
//get the pad
getPadSafe(padID, true, function(err, pad)
{
if(ERR(err, callback)) return;
pad.appendText(text);
//update the clients on the pad
padMessageHandler.updatePadClients(pad, callback);
});
};
/**
getHTML(padID, [rev]) returns the html of a pad

View file

@ -303,6 +303,19 @@ Pad.prototype.setText = function setText(newText) {
this.appendRevision(changeset);
};
Pad.prototype.appendText = function appendText(newText) {
//clean the new text
newText = exports.cleanText(newText);
var oldText = this.text();
//create the changeset
var changeset = Changeset.makeSplice(oldText, oldText.length, 0, newText);
//append the changeset
this.appendRevision(changeset);
};
Pad.prototype.appendChatMessage = function appendChatMessage(text, userId, time) {
this.chatHead++;
//save the chat entry in the database