Skip to content
This repository was archived by the owner on Dec 14, 2023. It is now read-only.

Commit 16024e1

Browse files
committed
change add user api for new user registration
1 parent a9eecbd commit 16024e1

File tree

4 files changed

+202
-52
lines changed

4 files changed

+202
-52
lines changed

test/fixtures/profiles.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,4 @@
6565
"resolvedChildren": [],
6666
"resolvedParents": []
6767
}
68-
]
68+
]

test/fixtures/users.json

Lines changed: 170 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,187 @@
11
[
22
{
3-
"name": "test1",
4-
"email": "[email protected]",
5-
"password": "password1",
6-
"termsConditionsAccepted": true,
3+
"user": {
4+
"name": "test1",
5+
"email": "[email protected]",
6+
"password": "password1",
7+
"termsConditionsAccepted": true,
78
"initUserType":"attendee-u13",
8-
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
9+
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
10+
},
11+
"profile": {
12+
"dob": "1982-01-31T22:00:00.000Z",
13+
"country": {
14+
"countryName": "Ireland",
15+
"countryNumber": "372",
16+
"continent": "EU",
17+
"alpha2": "IE",
18+
"alpha3": "IRL"
19+
},
20+
"city": {},
21+
"countryname": "Ireland",
22+
"countrynumber": null,
23+
"continent": "EU",
24+
"alpha2": "IE",
25+
"alpha3": "IRL",
26+
"admin1Code": null,
27+
"admin1Name": null,
28+
"admin2Code": null,
29+
"admin2Name": null,
30+
"admin3Code": null,
31+
"admin3Name": null,
32+
"admin4Code": null,
33+
"admin4Name": null,
34+
"state": {},
35+
"county": {},
36+
"placeName": "Test"
37+
}
938
},
1039
{
11-
"name": "test2",
12-
"email": "[email protected]",
13-
"password": "passiword2",
14-
"termsConditionsAccepted": true,
40+
"user": {
41+
"name": "test2",
42+
"email": "[email protected]",
43+
"password": "passiword2",
44+
"termsConditionsAccepted": true,
1545
"initUserType":"attendee-o13",
16-
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
46+
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
47+
},
48+
"profile": {
49+
"dob": "1982-01-31T22:00:00.000Z",
50+
"country": {
51+
"countryName": "Ireland",
52+
"countryNumber": "372",
53+
"continent": "EU",
54+
"alpha2": "IE",
55+
"alpha3": "IRL"
56+
},
57+
"city": {},
58+
"countryname": "Ireland",
59+
"countrynumber": null,
60+
"continent": "EU",
61+
"alpha2": "IE",
62+
"alpha3": "IRL",
63+
"admin1Code": null,
64+
"admin1Name": null,
65+
"admin2Code": null,
66+
"admin2Name": null,
67+
"admin3Code": null,
68+
"admin3Name": null,
69+
"admin4Code": null,
70+
"admin4Name": null,
71+
"state": {},
72+
"county": {},
73+
"placeName": "Test"
74+
}
1775
},
1876
{
19-
"name": "test3",
20-
"email": "[email protected]",
21-
"password": "password3",
22-
"termsConditionsAccepted": true,
77+
"user": {
78+
"name": "test3",
79+
"email": "[email protected]",
80+
"password": "password3",
81+
"termsConditionsAccepted": true,
2382
"initUserType":"parent-guardian",
24-
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
83+
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
84+
},
85+
"profile": {
86+
"dob": "1982-01-31T22:00:00.000Z",
87+
"country": {
88+
"countryName": "Ireland",
89+
"countryNumber": "372",
90+
"continent": "EU",
91+
"alpha2": "IE",
92+
"alpha3": "IRL"
93+
},
94+
"city": {},
95+
"countryname": "Ireland",
96+
"countrynumber": null,
97+
"continent": "EU",
98+
"alpha2": "IE",
99+
"alpha3": "IRL",
100+
"admin1Code": null,
101+
"admin1Name": null,
102+
"admin2Code": null,
103+
"admin2Name": null,
104+
"admin3Code": null,
105+
"admin3Name": null,
106+
"admin4Code": null,
107+
"admin4Name": null,
108+
"state": {},
109+
"county": {},
110+
"placeName": "Test"
111+
}
25112
},
26113
{
27-
"name": "test4",
28-
"email": "[email protected]",
29-
"password": "password4",
30-
"termsConditionsAccepted": true,
114+
"user": {
115+
"name": "test4",
116+
"email": "[email protected]",
117+
"password": "password4",
118+
"termsConditionsAccepted": true,
31119
"initUserType":"mentor",
32-
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
120+
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
121+
},
122+
"profile": {
123+
"dob": "1982-01-31T22:00:00.000Z",
124+
"country": {
125+
"countryName": "Ireland",
126+
"countryNumber": "372",
127+
"continent": "EU",
128+
"alpha2": "IE",
129+
"alpha3": "IRL"
130+
},
131+
"city": {},
132+
"countryname": "Ireland",
133+
"countrynumber": null,
134+
"continent": "EU",
135+
"alpha2": "IE",
136+
"alpha3": "IRL",
137+
"admin1Code": null,
138+
"admin1Name": null,
139+
"admin2Code": null,
140+
"admin2Name": null,
141+
"admin3Code": null,
142+
"admin3Name": null,
143+
"admin4Code": null,
144+
"admin4Name": null,
145+
"state": {},
146+
"county": {},
147+
"placeName": "Test"
148+
}
33149
},
34150
{
35-
"name": "test5",
36-
"email": "[email protected]",
37-
"password": "password5",
38-
"termsConditionsAccepted": true,
151+
"user": {
152+
"name": "test5",
153+
"email": "[email protected]",
154+
"password": "password5",
155+
"termsConditionsAccepted": true,
39156
"initUserType":"champion",
40-
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
157+
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
158+
},
159+
"profile": {
160+
"dob": "1982-01-31T22:00:00.000Z",
161+
"country": {
162+
"countryName": "Ireland",
163+
"countryNumber": "372",
164+
"continent": "EU",
165+
"alpha2": "IE",
166+
"alpha3": "IRL"
167+
},
168+
"city": {},
169+
"countryname": "Ireland",
170+
"countrynumber": null,
171+
"continent": "EU",
172+
"alpha2": "IE",
173+
"alpha3": "IRL",
174+
"admin1Code": null,
175+
"admin1Name": null,
176+
"admin2Code": null,
177+
"admin2Name": null,
178+
"admin3Code": null,
179+
"admin3Name": null,
180+
"admin4Code": null,
181+
"admin4Name": null,
182+
"state": {},
183+
"county": {},
184+
"placeName": "Test"
185+
}
41186
}
42187
]

test/users-spec.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,15 @@ lab.experiment('Users Microservice test', { timeout: 5000 }, function(){
131131
"email": "[email protected]",
132132
"password": "password6",
133133
"termsConditionsAccepted": true,
134-
"initUserType": "mentor",
134+
"initUserType": "parent-guardian",
135135
"g-recaptcha-response": "03AHJ_VuufpHRAc3bbYfeMunZ-nOYP5rjdSwlw7e4Btq-RGYYvCRTJJkXptbQuBwJDL0ZWQ7eHeQRoTI9iRZlakVlpVDB9rd0kYw2iNcMXG9qNNNBNv_qNjTyE4RwZ3x0zAt2aqg-LjboEqRyLqbOO032kal8wz_GGKbrykJMV0kiSdCbABlSalNHUwlP9II7nGs1me9x84owsr5ZCFkCYtQehguTm6nMe9HRq7hLbQb4hK8HuWwfqQ1z5CIuKk7el5taxNC1h4QuqWsNgGlWAv_Gqp4dJjz683kNCV2vbTlofz6FwttNZwD-mS1l4OrTCdvdX9JBcipXbjlIF1RFyBbXGvSAftp3_ajmoAjstwSdAZVtD1Whm_x8nUo_0pFp6x0n0Y1j8Ztc87oxAXswI-Yvf8JFu8Bhaw_SwAz2Qk7meR2Mvx5lKz_3IzK_b15gnmXenqamBpksv"
136136
}
137+
var args = {
138+
"user": user,
139+
"profile": profiles
140+
}
137141

138-
seneca.act({role: role, cmd: 'register'}, user, function(err, savedUser){
142+
seneca.act({role: role, cmd: 'register'}, args, function(err, savedUser){
139143
if(err) return done(err);
140144

141145
// console.log('savedUser: ' + util.inspect(savedUser));
@@ -164,7 +168,7 @@ lab.experiment('Users Microservice test', { timeout: 5000 }, function(){
164168

165169
lab.experiment('Promote', function(){
166170
lab.test('append \'super-admin\' to user\'s role list', function(done){
167-
userEnt.load$({email:users[0].email}, function(err, loadedUser){
171+
userEnt.load$({email:users[0].user.email}, function(err, loadedUser){
168172
if(err) return done(err);
169173

170174
// console.log('loadedUser: ' + util.inspect(loadedUser));

users.js

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -87,26 +87,28 @@ module.exports = function (options) {
8787
}
8888

8989
function cmd_register (args, done) {
90-
var isChampion = args.isChampion === true;
91-
var locality = args.locality || 'en_US';
90+
var profile = args.profile;
91+
var user = args.user;
92+
var locality = user.locality || 'en_US';
9293
var emailCode = 'auth-register-';
93-
var emailSubject = args.emailSubject;
94+
var emailSubject = user.emailSubject;
9495
var zenHostname = process.env.HOSTNAME || '127.0.0.1:8000';
95-
delete args.isChampion;
96+
var isChampion = user.isChampion === true;
97+
delete user.isChampion;
9698

97-
if (args.initUserType.name === 'attendee-u13') {
99+
if (user.initUserType.name === 'attendee-u13') {
98100
return done(new Error('Unable to register as attendee-u13'));
99101
}
100102

101103
// Roles Available: basic-user, cdf-admin
102104
var seneca = this;
103105

104-
if (!args['g-recaptcha-response']) {
106+
if (!user['g-recaptcha-response']) {
105107
return done(new Error('Error with captcha'));
106108
}
107109

108110
var secret = so['recaptcha_secret_key'];
109-
var captchaResponse = args['g-recaptcha-response'];
111+
var captchaResponse = user['g-recaptcha-response'];
110112

111113
var postData = {
112114
url: 'https://www.google.com/recaptcha/api/siteverify',
@@ -134,26 +136,26 @@ module.exports = function (options) {
134136

135137
function checkPermissions (success, done) {
136138
// if forumMods array contains the users email, make them an admin
137-
if (options.users.cdfAdmins.indexOf(args.email) > -1) {
138-
args.roles = ['cdf-admin'];
139+
if (options.users.cdfAdmins.indexOf(user.email) > -1) {
140+
user.roles = ['cdf-admin'];
139141
} else {
140-
args.roles = ['basic-user'];
142+
user.roles = ['basic-user'];
141143
}
142144

143145
return done(null, success);
144146
}
145147

146148
function registerUser (success, done) {
147-
args = _.omit(args, ['g-recaptcha-response', 'zenHostname', 'locality', 'user', 'emailSubject']);
149+
user = _.omit(user, ['g-recaptcha-response', 'zenHostname', 'locality', 'user', 'emailSubject']);
148150

149-
args.mailingList = (args.mailingList) ? 1 : 0;
151+
user.mailingList = (user.mailingList) ? 1 : 0;
150152

151-
checkPassword(args, function (err, args) {
153+
checkPassword(user, function (err, user) {
152154
if (err) return done(err);
153-
if (typeof args.ok !== 'undefined' && !args.ok) {
154-
return done(null, args);
155+
if (typeof user.ok !== 'undefined' && !user.ok) {
156+
return done(null, user);
155157
}
156-
seneca.act({role: 'user', cmd: 'register'}, args, function (err, registerResponse) {
158+
seneca.act({role: 'user', cmd: 'register'}, user, function (err, registerResponse) {
157159
if (err) return done(err);
158160
if (!registerResponse.ok) {
159161
return done(null, registerResponse);
@@ -164,13 +166,12 @@ module.exports = function (options) {
164166
var userType = 'attendee-o13';
165167
if (user.initUserType) userType = user.initUserType.name;
166168

167-
var profileData = {
168-
userId: user.id,
169-
name: user.name,
170-
email: user.email,
171-
userType: userType
172-
};
173-
seneca.act({role: 'cd-profiles', cmd: 'save', profile: profileData}, function (err, profile) {
169+
profile.userId = user.id;
170+
profile.name = user.name;
171+
profile.email = user.email;
172+
profile.userType = userType;
173+
174+
seneca.act({role: 'cd-profiles', cmd: 'save', profile: profile}, function (err, profile) {
174175
if (err) return done(err);
175176
if (registerResponse.ok === true && isChampion === true) {
176177
seneca.act({role: 'cd-salesforce', cmd: 'queud_update_users', param: {user: registerResponse.user}, fatal$: false});

0 commit comments

Comments
 (0)