mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-02-01 03:12:42 +01:00
Added getAttributePool, getRevisionOfHead and getRevisionChangeset methods to API v1.2.8
Signed-off-by: Bernard `Guyzmo` Pratz <guyzmo+github@m0g.net>
This commit is contained in:
parent
09edfb0d5e
commit
8f1348b40b
2 changed files with 127 additions and 1 deletions
|
@ -74,6 +74,92 @@ exports.listSessionsOfAuthor = sessionManager.listSessionsOfAuthor;
|
||||||
/**PAD CONTENT FUNCTIONS*/
|
/**PAD CONTENT FUNCTIONS*/
|
||||||
/************************/
|
/************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
getAttributePool(padID) returns the attribute pool of a pad
|
||||||
|
|
||||||
|
*/
|
||||||
|
exports.getAttributePool = function (padID, callback)
|
||||||
|
{
|
||||||
|
getPadSafe(padID, true, function(err, pad)
|
||||||
|
{
|
||||||
|
if (ERR(err, callback)) return;
|
||||||
|
callbalk(null, {pool: pad.pool});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
getRevisionChangeset (padID, [rev])
|
||||||
|
|
||||||
|
*/
|
||||||
|
exports.getRevisionChangeset = function(padID, rev, callback)
|
||||||
|
{
|
||||||
|
// check if rev is set
|
||||||
|
if (typeof rev === "function")
|
||||||
|
{
|
||||||
|
callback = rev;
|
||||||
|
rev = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if rev is a number
|
||||||
|
if (rev !== undefined && typeof rev !== "number")
|
||||||
|
{
|
||||||
|
// try to parse the number
|
||||||
|
if (!isNaN(parseInt(rev))
|
||||||
|
{
|
||||||
|
rev = parseInt(rev);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callback(new customError("rev is not a number", "apierror"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure this is not a negative number
|
||||||
|
if (rev !== undefined && rev < 0)
|
||||||
|
{
|
||||||
|
callback(new customError("rev is not a negative number", "apierror"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure this is not a float value
|
||||||
|
if (rev !== undefined && !is_int(rev))
|
||||||
|
{
|
||||||
|
callback(new customError("rev is a float value", "apierror"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the pad
|
||||||
|
getPadSafe(padID, true, function(err, pad)
|
||||||
|
{
|
||||||
|
if(ERR(err, callback)) return;
|
||||||
|
|
||||||
|
//the client asked for a special revision
|
||||||
|
if(rev !== undefined)
|
||||||
|
{
|
||||||
|
//check if this is a valid revision
|
||||||
|
if(rev > pad.getHeadRevisionNumber())
|
||||||
|
{
|
||||||
|
callback(new customError("rev is higher than the head revision of the pad","apierror"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//get the changeset for this revision
|
||||||
|
pad.getRevisionChangeset(rev, function(err, changeset)
|
||||||
|
{
|
||||||
|
if(ERR(err, callback)) return;
|
||||||
|
|
||||||
|
callback(null, changeset);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//the client wants the latest changeset, lets return it to him
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callback(null, {"changeset": pad.getRevisionChangeset(pad.getHeadRevisionNumber())});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getText(padID, [rev]) returns the text of a pad
|
getText(padID, [rev]) returns the text of a pad
|
||||||
|
|
||||||
|
|
|
@ -214,6 +214,46 @@ var version =
|
||||||
, "getChatHistory" : ["padID", "start", "end"]
|
, "getChatHistory" : ["padID", "start", "end"]
|
||||||
, "getChatHead" : ["padID"]
|
, "getChatHead" : ["padID"]
|
||||||
}
|
}
|
||||||
|
, "1.2.8":
|
||||||
|
{ "createGroup" : []
|
||||||
|
, "createGroupIfNotExistsFor" : ["groupMapper"]
|
||||||
|
, "deleteGroup" : ["groupID"]
|
||||||
|
, "listPads" : ["groupID"]
|
||||||
|
, "listAllPads" : []
|
||||||
|
, "createDiffHTML" : ["padID", "startRev", "endRev"]
|
||||||
|
, "createPad" : ["padID", "text"]
|
||||||
|
, "createGroupPad" : ["groupID", "padName", "text"]
|
||||||
|
, "createAuthor" : ["name"]
|
||||||
|
, "createAuthorIfNotExistsFor": ["authorMapper" , "name"]
|
||||||
|
, "listPadsOfAuthor" : ["authorID"]
|
||||||
|
, "createSession" : ["groupID", "authorID", "validUntil"]
|
||||||
|
, "deleteSession" : ["sessionID"]
|
||||||
|
, "getSessionInfo" : ["sessionID"]
|
||||||
|
, "listSessionsOfGroup" : ["groupID"]
|
||||||
|
, "listSessionsOfAuthor" : ["authorID"]
|
||||||
|
, "getText" : ["padID", "rev"]
|
||||||
|
, "setText" : ["padID", "text"]
|
||||||
|
, "getHTML" : ["padID", "rev"]
|
||||||
|
, "setHTML" : ["padID", "html"]
|
||||||
|
, "getRevisionsCount" : ["padID"]
|
||||||
|
, "getLastEdited" : ["padID"]
|
||||||
|
, "deletePad" : ["padID"]
|
||||||
|
, "getReadOnlyID" : ["padID"]
|
||||||
|
, "setPublicStatus" : ["padID", "publicStatus"]
|
||||||
|
, "getPublicStatus" : ["padID"]
|
||||||
|
, "setPassword" : ["padID", "password"]
|
||||||
|
, "isPasswordProtected" : ["padID"]
|
||||||
|
, "listAuthorsOfPad" : ["padID"]
|
||||||
|
, "padUsersCount" : ["padID"]
|
||||||
|
, "getAuthorName" : ["authorID"]
|
||||||
|
, "padUsers" : ["padID"]
|
||||||
|
, "sendClientsMessage" : ["padID", "msg"]
|
||||||
|
, "listAllGroups" : []
|
||||||
|
, "checkToken" : []
|
||||||
|
, "getChatHistory" : ["padID"]
|
||||||
|
, "getChatHistory" : ["padID", "start", "end"]
|
||||||
|
, "getChatHead" : ["padID"]
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// set the latest available API version here
|
// set the latest available API version here
|
||||||
|
|
Loading…
Reference in a new issue