11import _ from 'lodash'
22import { axiosInstance as axios } from './requestInterceptor'
33import { TC_API_URL , RESET_PASSWORD_URL } from '../config/constants'
4+ import querystring from 'querystring'
45
56/**
67 * Get a user based on it's handle/username
7- *
8+ *
89 * @param {String } handle user handle
9- *
10+ *
1011 * @returns {Promise<Object> } user profile data
1112 */
1213export function getUserProfile ( handle ) {
@@ -18,15 +19,19 @@ export function getUserProfile(handle) {
1819
1920/**
2021 * Update user profile
21- *
22+ *
2223 * @param {String } handle user handle
2324 * @param {Object } updatedProfile updated user data
24- *
25+ * @param {Object } [queryParams] optional query params
26+ *
2527 * @returns {Promise<Object> } user profile data
2628 */
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
3035 } )
3136 . then ( resp => {
3237 return _ . get ( resp . data , 'result.content' , { } )
@@ -35,9 +40,9 @@ export function updateUserProfile(handle, updatedProfile) {
3540
3641/**
3742 * Get member traits
38- *
43+ *
3944 * @param {String } handle member handle
40- *
45+ *
4146 * @returns {Promise<Array> } member traits
4247 */
4348export const getMemberTraits = ( handle ) => {
@@ -47,10 +52,10 @@ export const getMemberTraits = (handle) => {
4752
4853/**
4954 * Update member traits
50- *
55+ *
5156 * @param {String } handle member handle
5257 * @param {Array } updatedTraits list of updated traits
53- *
58+ *
5459 * @returns {Promise<Array> } member traits
5560 */
5661export const updateMemberTraits = ( handle , updatedTraits ) => {
@@ -62,10 +67,10 @@ export const updateMemberTraits = (handle, updatedTraits) => {
6267
6368/**
6469 * Create member traits
65- *
70+ *
6671 * @param {String } handle member handle
6772 * @param {Array } traits list of traits to create
68- *
73+ *
6974 * @returns {Promise<Array> } member traits
7075 */
7176export const createMemberTraits = ( handle , traits ) => {
@@ -77,12 +82,12 @@ export const createMemberTraits = (handle, traits) => {
7782
7883/**
7984 * Update member photo
80- *
85+ *
8186 * @param {String } handle member handle
8287 * @param {Object } data params to update photo
8388 * @param {String } data.contentType photo file content type
8489 * @param {String } data.token token provided by pre signed URL
85- *
90+ *
8691 * @returns {Promise<String> } photo URL
8792 */
8893export const updateMemberPhoto = ( handle , data ) => {
@@ -94,26 +99,26 @@ export const updateMemberPhoto = (handle, data) => {
9499
95100/**
96101 * Get pre-signed URL for member photo
97- *
102+ *
98103 * @param {String } handle member handle
99104 * @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
102107 */
103108export 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+ }
108113 } )
109114 . then ( resp => _ . get ( resp . data , 'result.content' , { } ) )
110115}
111116
112117/**
113118 * Check if email is available to be used for a user
114- *
119+ *
115120 * @param {String } email email to validate
116- *
121+ *
117122 * @returns {Promise<Object> } response body
118123 */
119124export const checkEmailValidity = ( email ) => {
@@ -123,24 +128,24 @@ export const checkEmailValidity = (email) => {
123128
124129/**
125130 * Update user password
126- *
131+ *
127132 * @param {Number } userId user id
128133 * @param {Object } credential user credentials old and new one
129- *
134+ *
130135 * @returns {Promise<Object> } response body
131136 */
132137export 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 }
135140 } )
136141 . then ( resp => _ . get ( resp . data , 'result.content' , { } ) )
137142}
138143
139144/**
140145 * Send reset password email to the user
141- *
146+ *
142147 * @param {String } email user email
143- *
148+ *
144149 * @returns {Promise<Object> } response body
145150 */
146151export const resetPassword = ( email ) => {
0 commit comments