1
1
import _ from 'lodash'
2
2
import { axiosInstance as axios } from './requestInterceptor'
3
3
import { TC_API_URL , RESET_PASSWORD_URL } from '../config/constants'
4
+ import querystring from 'querystring'
4
5
5
6
/**
6
7
* Get a user based on it's handle/username
7
- *
8
+ *
8
9
* @param {String } handle user handle
9
- *
10
+ *
10
11
* @returns {Promise<Object> } user profile data
11
12
*/
12
13
export function getUserProfile ( handle ) {
@@ -18,15 +19,19 @@ export function getUserProfile(handle) {
18
19
19
20
/**
20
21
* Update user profile
21
- *
22
+ *
22
23
* @param {String } handle user handle
23
24
* @param {Object } updatedProfile updated user data
24
- *
25
+ * @param {Object } [queryParams] optional query params
26
+ *
25
27
* @returns {Promise<Object> } user profile data
26
28
*/
27
- export function updateUserProfile ( handle , updatedProfile ) {
28
- return axios . put ( `${ TC_API_URL } /v3/members/${ handle } /` , {
29
- param : updatedProfile
29
+ export function updateUserProfile ( handle , updatedProfile , queryParams = { } ) {
30
+ let query = querystring . stringify ( queryParams )
31
+ query = query ? `?${ query } ` : ''
32
+
33
+ return axios . put ( `${ TC_API_URL } /v3/members/${ handle } /${ query } ` , {
34
+ param : updatedProfile
30
35
} )
31
36
. then ( resp => {
32
37
return _ . get ( resp . data , 'result.content' , { } )
@@ -35,9 +40,9 @@ export function updateUserProfile(handle, updatedProfile) {
35
40
36
41
/**
37
42
* Get member traits
38
- *
43
+ *
39
44
* @param {String } handle member handle
40
- *
45
+ *
41
46
* @returns {Promise<Array> } member traits
42
47
*/
43
48
export const getMemberTraits = ( handle ) => {
@@ -47,10 +52,10 @@ export const getMemberTraits = (handle) => {
47
52
48
53
/**
49
54
* Update member traits
50
- *
55
+ *
51
56
* @param {String } handle member handle
52
57
* @param {Array } updatedTraits list of updated traits
53
- *
58
+ *
54
59
* @returns {Promise<Array> } member traits
55
60
*/
56
61
export const updateMemberTraits = ( handle , updatedTraits ) => {
@@ -62,10 +67,10 @@ export const updateMemberTraits = (handle, updatedTraits) => {
62
67
63
68
/**
64
69
* Create member traits
65
- *
70
+ *
66
71
* @param {String } handle member handle
67
72
* @param {Array } traits list of traits to create
68
- *
73
+ *
69
74
* @returns {Promise<Array> } member traits
70
75
*/
71
76
export const createMemberTraits = ( handle , traits ) => {
@@ -77,12 +82,12 @@ export const createMemberTraits = (handle, traits) => {
77
82
78
83
/**
79
84
* Update member photo
80
- *
85
+ *
81
86
* @param {String } handle member handle
82
87
* @param {Object } data params to update photo
83
88
* @param {String } data.contentType photo file content type
84
89
* @param {String } data.token token provided by pre signed URL
85
- *
90
+ *
86
91
* @returns {Promise<String> } photo URL
87
92
*/
88
93
export const updateMemberPhoto = ( handle , data ) => {
@@ -94,26 +99,26 @@ export const updateMemberPhoto = (handle, data) => {
94
99
95
100
/**
96
101
* Get pre-signed URL for member photo
97
- *
102
+ *
98
103
* @param {String } handle member handle
99
104
* @param {File } file file to upload
100
- *
101
- * @returns {Promise<Object> } data of pre-signed URL
105
+ *
106
+ * @returns {Promise<Object> } data of pre-signed URL
102
107
*/
103
108
export const getPreSignedUrl = ( handle , file ) => {
104
- return axios . post ( `${ TC_API_URL } /v3/members/${ handle } /photoUploadUrl` , {
105
- param : {
106
- contentType : file . type
107
- }
109
+ return axios . post ( `${ TC_API_URL } /v3/members/${ handle } /photoUploadUrl` , {
110
+ param : {
111
+ contentType : file . type
112
+ }
108
113
} )
109
114
. then ( resp => _ . get ( resp . data , 'result.content' , { } ) )
110
115
}
111
116
112
117
/**
113
118
* Check if email is available to be used for a user
114
- *
119
+ *
115
120
* @param {String } email email to validate
116
- *
121
+ *
117
122
* @returns {Promise<Object> } response body
118
123
*/
119
124
export const checkEmailValidity = ( email ) => {
@@ -123,24 +128,24 @@ export const checkEmailValidity = (email) => {
123
128
124
129
/**
125
130
* Update user password
126
- *
131
+ *
127
132
* @param {Number } userId user id
128
133
* @param {Object } credential user credentials old and new one
129
- *
134
+ *
130
135
* @returns {Promise<Object> } response body
131
136
*/
132
137
export const updatePassword = ( userId , credential ) => {
133
- return axios . patch ( `${ TC_API_URL } /v3/users/${ userId } ` , {
134
- param : { credential }
138
+ return axios . patch ( `${ TC_API_URL } /v3/users/${ userId } ` , {
139
+ param : { credential }
135
140
} )
136
141
. then ( resp => _ . get ( resp . data , 'result.content' , { } ) )
137
142
}
138
143
139
144
/**
140
145
* Send reset password email to the user
141
- *
146
+ *
142
147
* @param {String } email user email
143
- *
148
+ *
144
149
* @returns {Promise<Object> } response body
145
150
*/
146
151
export const resetPassword = ( email ) => {
0 commit comments