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:
Guyzmo 2013-04-01 17:18:45 +02:00 committed by Bernard `Guyzmo` Pratz
parent 09edfb0d5e
commit 8f1348b40b
2 changed files with 127 additions and 1 deletions

View File

@ -74,6 +74,92 @@ exports.listSessionsOfAuthor = sessionManager.listSessionsOfAuthor;
/**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

View File

@ -180,7 +180,47 @@ var version =
, "deleteGroup" : ["groupID"]
, "listPads" : ["groupID"]
, "listAllPads" : []
, "createDiffHTML" : ["padID", "startRev", "endRev"]
, "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"]
}
, "1.2.8":
{ "createGroup" : []
, "createGroupIfNotExistsFor" : ["groupMapper"]
, "deleteGroup" : ["groupID"]
, "listPads" : ["groupID"]
, "listAllPads" : []
, "createDiffHTML" : ["padID", "startRev", "endRev"]
, "createPad" : ["padID", "text"]
, "createGroupPad" : ["groupID", "padName", "text"]
, "createAuthor" : ["name"]