@@ -69,33 +69,37 @@ export class ShopwareAdminTriggerNode implements INodeType {
69
69
webhookMethods = {
70
70
default : {
71
71
async checkExists ( this : IHookFunctions ) : Promise < boolean > {
72
- const webhookData = this . getWorkflowStaticData ( 'node' ) ;
73
-
74
- if ( webhookData . webhookId === undefined ) {
75
- return false ;
76
- }
77
-
78
- try {
79
- await axios ( {
80
- ...( await authenticate . call ( this ) ) ,
81
- url : `/webhook/${ webhookData . webhookId } ` ,
82
- method : 'GET' ,
83
- } ) ;
84
- } catch ( error ) {
72
+ const response = await axios ( {
73
+ ...( await authenticate . call ( this ) ) ,
74
+ url : `/search/webhook` ,
75
+ method : 'POST' ,
76
+ data : {
77
+ page : 1 ,
78
+ limit : 100 ,
79
+ filter : [
80
+ {
81
+ type : 'equals' ,
82
+ field : 'name' ,
83
+ value : `n8n-${ this . getNode ( ) . id } ` ,
84
+ } ,
85
+ ] ,
86
+ } ,
87
+ } ) ;
88
+
89
+ if ( response . data . total === 0 ) {
85
90
return false ;
86
91
}
87
92
88
93
return true ;
89
94
} ,
90
95
async create ( this : IHookFunctions ) : Promise < boolean > {
91
96
const webhookUrl = this . getNodeWebhookUrl ( 'default' ) ;
92
- const webhookData = this . getWorkflowStaticData ( 'node' ) ;
93
97
94
98
const eventName = this . getNodeParameter ( 'eventName' ) as string ;
95
99
const onlyLiveVersion = this . getNodeParameter ( 'onlyLiveVersion' ) as boolean ;
96
100
97
101
try {
98
- const result = await axios ( {
102
+ await axios ( {
99
103
...( await authenticate . call ( this ) ) ,
100
104
url : '/webhook' ,
101
105
method : 'POST' ,
@@ -106,29 +110,42 @@ export class ShopwareAdminTriggerNode implements INodeType {
106
110
onlyLiveVersion,
107
111
} ,
108
112
} ) ;
109
-
110
- webhookData . webhookId = result . data . id ;
111
113
} catch ( error ) {
112
114
return false ;
113
115
}
114
116
115
117
return true ;
116
118
} ,
117
119
async delete ( this : IHookFunctions ) : Promise < boolean > {
118
- const webhookData = this . getWorkflowStaticData ( 'node' ) ;
119
-
120
- try {
121
- await axios ( {
122
- ...( await authenticate . call ( this ) ) ,
123
- url : `/webhook/${ webhookData . webhookId } ` ,
124
- method : 'DELETE' ,
125
- } ) ;
126
- } catch ( error ) {
127
- return false ;
120
+ const response = await axios ( {
121
+ ...( await authenticate . call ( this ) ) ,
122
+ url : `/search/webhook` ,
123
+ method : 'POST' ,
124
+ data : {
125
+ page : 1 ,
126
+ limit : 100 ,
127
+ filter : [
128
+ {
129
+ type : 'equals' ,
130
+ field : 'name' ,
131
+ value : `n8n-${ this . getNode ( ) . id } ` ,
132
+ } ,
133
+ ] ,
134
+ } ,
135
+ } ) ;
136
+
137
+ for ( const webhookData of response . data . data ) {
138
+ try {
139
+ await axios ( {
140
+ ...( await authenticate . call ( this ) ) ,
141
+ url : `/webhook/${ webhookData . id } ` ,
142
+ method : 'DELETE' ,
143
+ } ) ;
144
+ } catch ( error ) {
145
+ return false ;
146
+ }
128
147
}
129
148
130
- delete webhookData . webhookId ;
131
-
132
149
return true ;
133
150
} ,
134
151
} ,
0 commit comments