1-
21import { IncomingMessage , ServerResponse } from "http" ;
2+ import { requestUrl } from "obsidian" ;
33import { BaseController } from "./BaseController" ;
44import { WebhookConfig , WebhookDelivery , WebhookEvent , WebhookPayload } from "../types" ;
55import { createHash , createHmac } from "crypto" ;
66import TaskNotesPlugin from "../main" ;
7-
7+
88import { Get , Post , Delete } from "../utils/OpenAPIDecorators" ;
99
1010export class WebhookController extends BaseController {
@@ -172,7 +172,7 @@ export class WebhookController extends BaseController {
172172 } else if ( "path" in adapter && typeof adapter . path === "string" ) {
173173 vaultPath = adapter . path ;
174174 }
175- } catch ( error ) {
175+ } catch {
176176 // Silently fail if vault path isn't accessible
177177 }
178178
@@ -243,20 +243,22 @@ export class WebhookController extends BaseController {
243243 headers [ "X-TaskNotes-Delivery-ID" ] = delivery . id ;
244244 }
245245
246- const response = await fetch ( webhook . url , {
246+ const response = await requestUrl ( {
247+ url : webhook . url ,
247248 method : "POST" ,
248249 headers,
249250 body : JSON . stringify ( delivery . payload ) ,
251+ throw : false ,
250252 } ) ;
251253
252254 delivery . responseStatus = response . status ;
253255
254- if ( response . ok ) {
256+ if ( response . status >= 200 && response . status < 300 ) {
255257 delivery . status = "success" ;
256258 webhook . successCount ++ ;
257259 webhook . lastTriggered = new Date ( ) . toISOString ( ) ;
258260 } else {
259- throw new Error ( `HTTP ${ response . status } : ${ response . statusText } ` ) ;
261+ throw new Error ( `HTTP ${ response . status } : ${ response . text } ` ) ;
260262 }
261263 } catch ( error : any ) {
262264 delivery . error = error . message ;
@@ -333,8 +335,6 @@ export class WebhookController extends BaseController {
333335 payload : WebhookPayload
334336 ) : Promise < any > {
335337 try {
336- console . log ( `🔧 Applying transformation: ${ transformFile } ` ) ;
337-
338338 if ( transformFile . endsWith ( ".js" ) ) {
339339 return await this . applyJSTransformation ( transformFile , payload ) ;
340340 } else if ( transformFile . endsWith ( ".json" ) ) {
@@ -357,15 +357,10 @@ export class WebhookController extends BaseController {
357357 payload : WebhookPayload
358358 ) : Promise < any > {
359359 try {
360- console . log ( `📂 Reading transform file: ${ transformFile } ` ) ;
361-
362360 // Read transformation file from vault
363361 let transformCode : string ;
364362 try {
365363 transformCode = await this . plugin . app . vault . adapter . read ( transformFile ) ;
366- console . log (
367- `✅ Transform file loaded successfully (${ transformCode . length } characters)`
368- ) ;
369364 } catch ( readError : any ) {
370365 throw new Error (
371366 `Failed to read transform file '${ transformFile } ': ${ readError . message } . Please check the file path and ensure it exists in your vault.`
@@ -386,8 +381,6 @@ export class WebhookController extends BaseController {
386381 ) ;
387382 }
388383
389- console . log ( `🔧 Executing transform function for event: ${ payload . event } ` ) ;
390-
391384 // Create a safe execution context
392385 // User-authored transform files are an explicit trusted scripting feature.
393386 // eslint-disable-next-line @typescript-eslint/no-implied-eval
@@ -405,7 +398,6 @@ export class WebhookController extends BaseController {
405398 ) ;
406399
407400 const result = transform ( payload ) ;
408- console . log ( `✅ Transform completed successfully for ${ transformFile } ` ) ;
409401 return result ;
410402 } catch ( error : any ) {
411403 console . error ( `❌ JS transformation error for '${ transformFile } ':` , error . message ) ;
@@ -418,15 +410,10 @@ export class WebhookController extends BaseController {
418410 payload : WebhookPayload
419411 ) : Promise < any > {
420412 try {
421- console . log ( `📂 Reading JSON template file: ${ transformFile } ` ) ;
422-
423413 // Read template file from vault
424414 let templateContent : string ;
425415 try {
426416 templateContent = await this . plugin . app . vault . adapter . read ( transformFile ) ;
427- console . log (
428- `✅ JSON template file loaded successfully (${ templateContent . length } characters)`
429- ) ;
430417 } catch ( readError : any ) {
431418 throw new Error (
432419 `Failed to read template file '${ transformFile } ': ${ readError . message } . Please check the file path and ensure it exists in your vault.`
@@ -450,8 +437,6 @@ export class WebhookController extends BaseController {
450437 ) ;
451438 }
452439
453- console . log ( `🔧 Applying JSON template for event: ${ payload . event } ` ) ;
454-
455440 // Get template for this event or use default
456441 const template = templates [ payload . event ] || templates . default ;
457442 if ( ! template ) {
@@ -463,7 +448,6 @@ export class WebhookController extends BaseController {
463448
464449 // Apply template variable substitution
465450 const result = this . interpolateTemplate ( template , payload ) ;
466- console . log ( `✅ JSON template applied successfully for ${ transformFile } ` ) ;
467451 return result ;
468452 } catch ( error : any ) {
469453 console . error ( `❌ JSON transformation error for '${ transformFile } ':` , error . message ) ;
0 commit comments