Skip to content

Commit 310e5f9

Browse files
author
emmanuel
committed
Added documentation. Fixed issue #1.
1 parent 1100e66 commit 310e5f9

File tree

7 files changed

+248
-25
lines changed

7 files changed

+248
-25
lines changed

lib/fawn.js

+7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var collection;
1111
var TaskMdl;
1212
var Task;
1313
var Roller;
14+
var utils;
1415

1516
var Fawn = {
1617
init: function(db, _collection, options){
@@ -38,6 +39,7 @@ var Fawn = {
3839
TaskMdl = require("../models/task")(mongoose, collection);
3940
Task = require("./task")(mongoose, TaskMdl);
4041
Roller = require("./roller")(mongoose, TaskMdl);
42+
utils = require("./utils")(mongoose);
4143
}
4244

4345
, Task: function(){
@@ -49,6 +51,11 @@ var Fawn = {
4951
checkInitStatus();
5052
return Roller;
5153
}
54+
55+
, initModel: function (modelName, schema) {
56+
checkInitStatus();
57+
utils.initModel(modelName, schema);
58+
}
5259
};
5360

5461
function checkInitStatus(){

lib/roller.js

+41
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ var utils;
1919
var updateState;
2020
var getModel;
2121

22+
/**
23+
* Initializes variables and gets the roller.
24+
*
25+
* @param mongoose the mongoose instance
26+
* @param _TaskMdl the task model
27+
*
28+
* @returns An object containing rollback functions
29+
* @constructor
30+
*/
2231
var RollerProvider = function(mongoose, _TaskMdl){
2332
TaskMdl = _TaskMdl;
2433
utils = require("./utils")(mongoose);
@@ -29,6 +38,10 @@ var RollerProvider = function(mongoose, _TaskMdl){
2938
};
3039

3140
var Roller = {
41+
42+
/**
43+
* rolls back all incomplete tasks
44+
*/
3245
roll: function(){
3346
var chain = Promise.resolve();
3447

@@ -46,6 +59,13 @@ var Roller = {
4659
, rollOne: rollBackTask
4760
};
4861

62+
/**
63+
* Rollback for a single task
64+
*
65+
* @param task the task to roll back
66+
*
67+
* @returns {Promise|*}
68+
*/
4969
function rollBackTask(task) {
5070
var chain = Promise.resolve();
5171
var lastIndex = task.steps.length - 1;
@@ -73,6 +93,13 @@ function rollBackTask(task) {
7393
});
7494
}
7595

96+
/**
97+
* Gets the correct rollback function for a step
98+
*
99+
* @param step the step to rollback
100+
*
101+
* @returns a function to rollback step
102+
*/
76103
function getRollbackFunc(step){
77104
switch(step.type){
78105
case SAVE: return rollbackSave;
@@ -81,6 +108,12 @@ function getRollbackFunc(step){
81108
}
82109
}
83110

111+
/**
112+
* Rollback for a save step
113+
*
114+
* @param save the save step
115+
* @param task the task containing the step
116+
*/
84117
function rollbackSave(save, task) {
85118
var Collection = getModel(save.name);
86119

@@ -89,6 +122,14 @@ function rollbackSave(save, task) {
89122
});
90123
}
91124

125+
/**
126+
* Rollback for delete or update step.
127+
*
128+
* @param step the step to update
129+
* @param task the task containing the step.
130+
*
131+
* @returns {Promise|*}
132+
*/
92133
function rollbackDeleteOrUpdate(step, task){
93134
var Collection = getModel(step.name);
94135
var chain = Promise.resolve();

0 commit comments

Comments
 (0)