@@ -20,6 +20,7 @@ const props = {
2020 name : 'specialName' ,
2121 productId : '9001' ,
2222 deviceId : '1337' ,
23+ device : 'my-device' ,
2324 key : 'c1a55e5' ,
2425 event : 'main' ,
2526 token : 'Y' ,
@@ -31,28 +32,35 @@ const props = {
3132 } ,
3233 binaryId : '123456' ,
3334 targetVersion : '0.4.7' ,
34- requestType : 'GET' ,
3535 headers : {
3636 test : 'header'
3737 } ,
38- query : {
39- q : 'p'
40- } ,
41- form : {
42- f : 'd'
43- } ,
44- json : {
45- j : 'd'
46- } ,
47- body : '{{data}}' ,
48- responseTopic : 'topic' ,
49- responseTemplate : 'template' ,
50- webhookAuth : {
51- username : 'u' ,
52- password : 'p'
53- } ,
5438 rejectUnauthorized : true ,
5539 noDefaults : true ,
40+ hook : {
41+ method : 'PUT' ,
42+ auth : {
43+ username : 'u' ,
44+ password : 'p'
45+ } ,
46+ headers : {
47+ one : '1' ,
48+ two : '2'
49+ } ,
50+ query : {
51+ q : 'p'
52+ } ,
53+ json : {
54+ j : 'd'
55+ } ,
56+ form : {
57+ f : 'd'
58+ } ,
59+ body : '{{data}}' ,
60+ responseTemplate : 'template' ,
61+ responseEvent : 'res-event' ,
62+ errorResponseEvent : 'res-err-event'
63+ } ,
5664 hookId : 'hook-1234567890' ,
5765 integrationId : 'integration-1234567890' ,
5866 clientId : 'client-123' ,
@@ -991,50 +999,86 @@ describe('ParticleAPI', () => {
991999 it ( 'creates for a single device' , ( ) => {
9921000 return api . createWebhook ( props ) . then ( ( results ) => {
9931001 results . should . match ( {
994- method : 'post' ,
9951002 uri : '/v1/webhooks' ,
1003+ method : 'post' ,
9961004 auth : props . auth ,
1005+ headers : props . headers ,
9971006 data : {
998- event : props . name ,
1007+ event : props . event ,
9991008 url : props . url ,
1000- deviceid : props . deviceId ,
1001- responseTemplate : props . responseTemplate ,
1002- responseTopic : props . responseTopic ,
1003- query : props . query ,
1004- form : props . form ,
1005- json : props . json ,
1006- headers : props . headers ,
1007- auth : props . webhookAuth ,
1008- requestType : props . requestType ,
1009+ deviceId : props . device ,
10091010 rejectUnauthorized : props . rejectUnauthorized ,
1010- }
1011+ noDefaults : props . noDefaults ,
1012+ requestType : props . hook . method ,
1013+ auth : props . hook . auth ,
1014+ headers : props . hook . headers ,
1015+ query : props . hook . query ,
1016+ json : props . hook . json ,
1017+ form : props . hook . form ,
1018+ body : props . hook . body ,
1019+ responseTemplate : props . hook . responseTemplate ,
1020+ responseTopic : props . hook . responseEvent ,
1021+ errorResponseTopic : props . hook . errorResponseEvent ,
1022+ } ,
1023+ context : { }
10111024 } ) ;
10121025 } ) ;
10131026 } ) ;
10141027
10151028 it ( 'creates for user\'s devices' , ( ) => {
1016- const params = Object . assign ( { } , props , { deviceId : 'mine' } ) ;
1029+ const params = Object . assign ( { } , props ) ;
1030+ delete params . device ;
10171031 return api . createWebhook ( params ) . then ( ( results ) => {
10181032 results . should . match ( {
1019- method : 'post' ,
10201033 uri : '/v1/webhooks' ,
1034+ method : 'post' ,
10211035 auth : props . auth ,
1036+ headers : props . headers ,
10221037 data : {
1023- event : props . name ,
1038+ event : props . event ,
10241039 url : props . url ,
1025- deviceid : undefined ,
1026- responseTemplate : props . responseTemplate ,
1027- responseTopic : props . responseTopic ,
1028- query : props . query ,
1029- form : props . form ,
1030- json : props . json ,
1031- body : props . body ,
1032- headers : props . headers ,
1033- auth : props . webhookAuth ,
1034- requestType : props . requestType ,
1040+ deviceId : undefined ,
10351041 rejectUnauthorized : props . rejectUnauthorized ,
1036- noDefaults : props . noDefaults
1037- }
1042+ noDefaults : props . noDefaults ,
1043+ requestType : props . hook . method ,
1044+ auth : props . hook . auth ,
1045+ headers : props . hook . headers ,
1046+ query : props . hook . query ,
1047+ json : props . hook . json ,
1048+ form : props . hook . form ,
1049+ body : props . hook . body ,
1050+ responseTemplate : props . hook . responseTemplate ,
1051+ responseTopic : props . hook . responseEvent ,
1052+ errorResponseTopic : props . hook . errorResponseEvent ,
1053+ } ,
1054+ context : { }
1055+ } ) ;
1056+ } ) ;
1057+ } ) ;
1058+
1059+ it ( 'creates using defaults' , ( ) => {
1060+ const params = Object . assign ( { } , props ) ;
1061+ delete params . device ;
1062+ delete params . rejectUnauthorized ;
1063+ delete params . noDefaults ;
1064+ delete params . hook ;
1065+ delete params . headers ;
1066+ delete params . context ;
1067+ return api . createWebhook ( params ) . then ( ( results ) => {
1068+ results . should . match ( {
1069+ uri : '/v1/webhooks' ,
1070+ method : 'post' ,
1071+ auth : props . auth ,
1072+ headers : undefined ,
1073+ data : {
1074+ event : props . event ,
1075+ url : props . url ,
1076+ deviceId : undefined ,
1077+ rejectUnauthorized : undefined ,
1078+ noDefaults : undefined ,
1079+ requestType : 'POST'
1080+ } ,
1081+ context : { }
10381082 } ) ;
10391083 } ) ;
10401084 } ) ;
@@ -1044,25 +1088,28 @@ describe('ParticleAPI', () => {
10441088 it ( 'generates request' , ( ) => {
10451089 return api . createWebhook ( propsWithProduct ) . then ( ( results ) => {
10461090 results . should . match ( {
1047- method : 'post' ,
10481091 uri : `/v1/products/${ product } /webhooks` ,
1092+ method : 'post' ,
10491093 auth : props . auth ,
1094+ headers : props . headers ,
10501095 data : {
1051- event : props . name ,
1096+ event : props . event ,
10521097 url : props . url ,
1053- deviceid : props . deviceId ,
1054- responseTemplate : props . responseTemplate ,
1055- responseTopic : props . responseTopic ,
1056- query : props . query ,
1057- form : props . form ,
1058- json : props . json ,
1059- body : props . body ,
1060- headers : props . headers ,
1061- auth : props . webhookAuth ,
1062- requestType : props . requestType ,
1098+ deviceId : props . device ,
10631099 rejectUnauthorized : props . rejectUnauthorized ,
1064- noDefaults : props . noDefaults
1065- }
1100+ noDefaults : props . noDefaults ,
1101+ requestType : props . hook . method ,
1102+ auth : props . hook . auth ,
1103+ headers : props . hook . headers ,
1104+ query : props . hook . query ,
1105+ json : props . hook . json ,
1106+ form : props . hook . form ,
1107+ body : props . hook . body ,
1108+ responseTemplate : props . hook . responseTemplate ,
1109+ responseTopic : props . hook . responseEvent ,
1110+ errorResponseTopic : props . hook . errorResponseEvent ,
1111+ } ,
1112+ context : { }
10661113 } ) ;
10671114 } ) ;
10681115 } ) ;
0 commit comments