1
- const queries = require ( ' ../database/db_queries' ) ;
2
- const airtable = require ( ' ../airtable/airtable_helpers' ) ;
3
- const { hashPassword } = require ( ' ../services/bcrypt' ) ;
4
- const jwt = require ( ' jwt-simple' ) ;
1
+ const queries = require ( " ../database/db_queries" ) ;
2
+ const airtable = require ( " ../airtable/airtable_helpers" ) ;
3
+ const { hashPassword } = require ( " ../services/bcrypt" ) ;
4
+ const jwt = require ( " jwt-simple" ) ;
5
5
6
6
const userToken = id => {
7
7
const timestamp = new Date ( ) . getTime ( ) ;
8
8
return jwt . encode ( { sub : id , iat : timestamp } , process . env . SECRET ) ;
9
9
} ;
10
10
11
11
exports . signUp = ( req , res ) => {
12
- const { name, email, password, confirmPassword, postcode } = req . body ;
12
+ const {
13
+ name,
14
+ email,
15
+ password,
16
+ confirmPassword,
17
+ postcode,
18
+ dob,
19
+ ethnicity,
20
+ gender,
21
+ sexuality
22
+ } = req . body ;
13
23
14
- if ( ! name || ! email || ! password || ! confirmPassword || ! postcode ) {
24
+ const userObject = req . body ;
25
+
26
+ if (
27
+ ! name ||
28
+ ! email ||
29
+ ! password ||
30
+ ! confirmPassword ||
31
+ ! postcode ||
32
+ ! dob ||
33
+ ! ethnicity ||
34
+ ! gender ||
35
+ ! sexuality
36
+ ) {
15
37
return res
16
38
. status ( 422 )
17
- . send ( { error : ' You must provide a name, email, location and password' } ) ;
39
+ . send ( { error : " You must provide a name, email, location and password" } ) ;
18
40
} else if ( password !== confirmPassword ) {
19
41
return res . status ( 422 ) . send ( { error : "Your passwords don't match!" } ) ;
20
42
} else {
@@ -23,16 +45,17 @@ exports.signUp = (req, res) => {
23
45
. then ( user => {
24
46
return new Promise ( ( resolve , reject ) => {
25
47
if ( user ) {
26
- res . status ( 422 ) . send ( { error : ' Email is in use. Please log in.' } ) ;
27
- reject ( ' Email is in use. Please log in' ) ;
48
+ res . status ( 422 ) . send ( { error : " Email is in use. Please log in." } ) ;
49
+ reject ( " Email is in use. Please log in" ) ;
28
50
} else resolve ( hashPassword ( password ) ) ;
29
51
} ) ;
30
52
} )
31
53
. then ( hash => {
32
54
return queries . addUser ( name , email , hash ) ;
33
55
} )
34
- . then ( user => {
35
- return airtable . addUser ( user ) ;
56
+ . then ( userDb => {
57
+ const userObject = { ...req . body , id : userDb . id } ;
58
+ return airtable . addUser ( userObject ) ;
36
59
} )
37
60
. then ( userId => {
38
61
res . json ( { token : userToken ( userId ) } ) ;
0 commit comments