added the listPads and createGroupPad

This commit is contained in:
Peter 'Pita' Martischka 2011-08-08 17:35:40 +01:00
parent 8d28fcbf23
commit 4670cbc60a
4 changed files with 128 additions and 49 deletions

View file

@ -67,10 +67,7 @@ Example returns:
{code: 0, message:"ok", data: {padIDs : ["3$test", "3$test2"]} {code: 0, message:"ok", data: {padIDs : ["3$test", "3$test2"]}
{code: 1, message:"There is no group for this groupID", data: null} {code: 1, message:"There is no group for this groupID", data: null}
*/ */
exports.listPads = function(groupID, callback) exports.listPads = groupManager.listPads;
{
}
/** /**
createGroupPad(groupID, padName [, text]) creates a new pad in this group createGroupPad(groupID, padName [, text]) creates a new pad in this group
@ -81,10 +78,7 @@ Example returns:
{code: 1, message:"pad does already exist", data: null} {code: 1, message:"pad does already exist", data: null}
{code: 1, message:"There is no group for this groupID", data: null} {code: 1, message:"There is no group for this groupID", data: null}
*/ */
exports.createGroupPad = function(groupID, padName, text, callback) exports.createGroupPad = groupManager.createGroupPad;
{
}
/**********************/ /**********************/
/**AUTHOR FUNCTIONS****/ /**AUTHOR FUNCTIONS****/
@ -311,14 +305,6 @@ Example returns:
*/ */
exports.setText = function(padID, text, callback) exports.setText = function(padID, text, callback)
{ {
//check the text
var textCheck = checkPadText(text);
if(textCheck != null)
{
callback(textCheck);
return;
}
//get the pad //get the pad
getPadSafe(padID, true, function(err, pad) getPadSafe(padID, true, function(err, pad)
{ {
@ -373,17 +359,6 @@ Example returns:
*/ */
exports.createPad = function(padID, text, callback) exports.createPad = function(padID, text, callback)
{ {
if(text)
{
//check the text
var textCheck = checkPadText(text);
if(textCheck != null)
{
callback(textCheck);
return;
}
}
//ensure there is no $ in the padID //ensure there is no $ in the padID
if(padID.indexOf("$") != -1) if(padID.indexOf("$") != -1)
{ {
@ -550,23 +525,6 @@ function is_int(value)
return (parseFloat(value) == parseInt(value)) && !isNaN(value) return (parseFloat(value) == parseInt(value)) && !isNaN(value)
} }
function checkPadText(text)
{
//check if text is a string
if(typeof text != "string")
{
return {stop: "text is not a string"};
}
//check if text is less than 100k chars
if(text.length > 100000)
{
return {stop: "text must be less than 100k chars"};
}
return null;
}
//gets a pad safe //gets a pad safe
function getPadSafe(padID, shouldExist, text, callback) function getPadSafe(padID, shouldExist, text, callback)
{ {

View file

@ -20,6 +20,7 @@
var db = require("./DB").db; var db = require("./DB").db;
var async = require("async"); var async = require("async");
var padManager = require("./PadManager");
exports.doesGroupExist = function(groupID, callback) exports.doesGroupExist = function(groupID, callback)
{ {
@ -102,6 +103,7 @@ exports.getMappedGroup4 = function(groupMapper, callback)
//create the mapper entry for this group //create the mapper entry for this group
db.set("mapper2group:"+groupMapper, responseObj.groupID); db.set("mapper2group:"+groupMapper, responseObj.groupID);
callback(null, responseObj); callback(null, responseObj);
}); });
} }
@ -113,5 +115,102 @@ exports.getMappedGroup4 = function(groupMapper, callback)
}); });
} }
exports.createGroupPad = function(groupID, padName, text, callback)
{
//create the padID
var padID = groupID + "$" + padName;
async.series([
//ensure group exists
function (callback)
{
exports.doesGroupExist(groupID, function(err, exists)
{
//error
if(err)
{
callback(err);
}
//group does not exist
else if(exists == false)
{
callback({stop: "groupID does not exist"});
}
//group exists, everything is fine
else
{
callback();
}
});
},
//ensure pad does not exists
function (callback)
{
padManager.doesPadExists(padID, function(err, exists)
{
//error
if(err)
{
callback(err);
}
//pad exists already
else if(exists == true)
{
callback({stop: "padName does already exist"});
}
//pad does not exist, everything is fine
else
{
callback();
}
});
},
//create the pad
function (callback)
{
padManager.getPad(padID, text, function(err)
{
callback(err);
});
},
//create an entry in the group for this pad
function (callback)
{
db.setSub("group:" + groupID, ["pads", padID], 1);
callback();
}
], function(err)
{
callback(err, {padID: padID});
});
//check if groupID exists
//check if pad already exists
//create the pad
//create the subentry in the padobject
}
exports.listPads = function(groupID, callback)
{
exports.doesGroupExist(groupID, function(err, exists)
{
//error
if(err)
{
callback(err);
}
//group does not exist
else if(exists == false)
{
callback({stop: "groupID does not exist"});
}
//group exists, let's get the pads
else
{
db.getSub("group:" + groupID, ["pads"], function(err, pads)
{
callback(err, {padIDs: pads});
});
}
});
}

View file

@ -33,8 +33,12 @@ globalPads = [];
*/ */
exports.getPad = function(id, text, callback) exports.getPad = function(id, text, callback)
{ {
//check if this is a valid padId
if(!exports.isValidPadId(id)) if(!exports.isValidPadId(id))
throw new Error(id + " is not a valid padId"); {
callback({stop: id + " is not a valid padId"});
return;
}
//make text an optional parameter //make text an optional parameter
if(typeof text == "function") if(typeof text == "function")
@ -43,6 +47,24 @@ exports.getPad = function(id, text, callback)
text = null; text = null;
} }
//check if this is a valid text
if(text != null)
{
//check if text is a string
if(typeof text != "string")
{
callback({stop: "text is not a string"});
return;
}
//check if text is less than 100k chars
if(text.length > 100000)
{
callback({stop: "text must be less than 100k chars"});
return;
}
}
var pad = globalPads[id]; var pad = globalPads[id];
//return pad if its already loaded //return pad if its already loaded

View file

@ -38,9 +38,9 @@ var functions = {
"createGroup" : [], "createGroup" : [],
"getMappedGroup4" : ["groupMapper"], "getMappedGroup4" : ["groupMapper"],
// "deleteGroup" : ["groupID"], // "deleteGroup" : ["groupID"],
// "listPads" : ["groupID"], "listPads" : ["groupID"],
"createPad" : ["padID", "text"], "createPad" : ["padID", "text"],
// "createGroupPad" : ["groupID", "padName", "text"], "createGroupPad" : ["groupID", "padName", "text"],
// "createAuthor" : ["name"], // "createAuthor" : ["name"],
// "getMappedAuthor4" : ["authorMapper" , "name"], // "getMappedAuthor4" : ["authorMapper" , "name"],
// "createSession" : ["groupID", "authorID", "validUntil"], // "createSession" : ["groupID", "authorID", "validUntil"],