4
4
* via API V3.
5
5
*/
6
6
import toCapitalCase from 'to-capital-case' ;
7
+ import { getApiResponsePayload } from '../utils/tc' ;
7
8
import { getApi } from './api' ;
8
9
9
- /**
10
- * Private. Handles given response from the member's traits API.
11
- * @param {Object } response
12
- * @return {Promise } On success resolves to the data fetched from the API.
13
- */
14
- function handleApiResponse ( response ) {
15
- if ( ! response . ok ) throw new Error ( response . statusText ) ;
16
- return response . json ( ) ;
17
- }
18
-
19
10
/**
20
11
* Service class.
21
12
*/
@@ -25,7 +16,7 @@ class UserTraitsService {
25
16
*/
26
17
constructor ( tokenV3 ) {
27
18
this . private = {
28
- api : getApi ( 'V5 ' , tokenV3 ) ,
19
+ api : getApi ( 'V3 ' , tokenV3 ) ,
29
20
tokenV3,
30
21
} ;
31
22
}
@@ -38,7 +29,7 @@ class UserTraitsService {
38
29
async getAllUserTraits ( handle ) {
39
30
// FIXME: Remove the .toLowerCase() when the API is fixed to ignore the case in the route params
40
31
const res = await this . private . api . get ( `/members/${ handle . toLowerCase ( ) } /traits` ) ;
41
- return handleApiResponse ( res ) ;
32
+ return getApiResponsePayload ( res ) ;
42
33
}
43
34
44
35
/**
@@ -49,17 +40,18 @@ class UserTraitsService {
49
40
* @return {Promise } Resolves to the member traits.
50
41
*/
51
42
async addUserTrait ( handle , traitId , data ) {
52
- const body = [ {
53
- traitId,
54
- categoryName : toCapitalCase ( traitId ) ,
55
- traits : {
43
+ const body = {
44
+ param : [ {
56
45
traitId,
57
- data,
58
- } ,
59
- } ] ;
46
+ categoryName : toCapitalCase ( traitId ) ,
47
+ traits : {
48
+ data,
49
+ } ,
50
+ } ] ,
51
+ } ;
60
52
61
53
const res = await this . private . api . postJson ( `/members/${ handle } /traits` , body ) ;
62
- return handleApiResponse ( res ) ;
54
+ return getApiResponsePayload ( res ) ;
63
55
}
64
56
65
57
/**
@@ -70,16 +62,18 @@ class UserTraitsService {
70
62
* @return {Promise } Resolves to the member traits.
71
63
*/
72
64
async updateUserTrait ( handle , traitId , data ) {
73
- const body = [ {
74
- traitId,
75
- categoryName : toCapitalCase ( traitId ) ,
76
- traits : {
77
- data,
78
- } ,
79
- } ] ;
65
+ const body = {
66
+ param : [ {
67
+ traitId,
68
+ categoryName : toCapitalCase ( traitId ) ,
69
+ traits : {
70
+ data,
71
+ } ,
72
+ } ] ,
73
+ } ;
80
74
81
75
const res = await this . private . api . putJson ( `/members/${ handle } /traits` , body ) ;
82
- return handleApiResponse ( res ) ;
76
+ return getApiResponsePayload ( res ) ;
83
77
}
84
78
85
79
/**
@@ -89,7 +83,8 @@ class UserTraitsService {
89
83
* @return {Promise } Resolves to the member traits.
90
84
*/
91
85
async deleteUserTrait ( handle , traitId ) {
92
- await this . private . api . delete ( `/members/${ handle } /traits?traitIds=${ traitId } ` ) ;
86
+ const res = await this . private . api . delete ( `/members/${ handle } /traits?traitIds=${ traitId } ` ) ;
87
+ return getApiResponsePayload ( res ) ;
93
88
}
94
89
}
95
90
0 commit comments