-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi.js
More file actions
55 lines (48 loc) · 1.26 KB
/
Copy pathapi.js
File metadata and controls
55 lines (48 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var Q = require('q');
var User = require('./models/user');
var Form = require('./models/form').Form;
var Step = require('./models/form').Step;
function newUser(type, id, name, email){
var deferred = Q.defer();
new User({
authType: type,
authIdentifier: id,
displayName: name,
email: email
}).save(function(err, user){
if(err) deferred.reject(err);
else deferred.resolve(user);
});
return deferred.promise;
}
function findUser(type, id){
var deferred = Q.defer();
User.findOne({authType: type, authIdentifier: id}, function(err, user) {
if(err) deferred.reject(err);
else deferred.resolve(user);
});
return deferred.promise;
}
exports.signIn = function(type, id, name, email){
var deferred = Q.defer();
findUser(type, id).then(function(user){
if(!user) newUser(type, id, name, email).then(deferred.resolve);
else deferred.resolve(user);
});
return deferred.promise;
}
exports.addForm = function(id, name, description){
var deferred = Q.defer();
new Form({
user: id,
name: name,
description: description
}).save(function(err, form){
if(err) deferred.reject(err);
else deferred.resolve(form);
});
return deferred.promise;
}
exports.route = function(req, res){
if (!req.isAuthenticated()){}
}