28 lines
672 B
Go
28 lines
672 B
Go
package handlers
|
|
|
|
import (
|
|
"bytes"
|
|
"log"
|
|
"net/http"
|
|
"time"
|
|
|
|
"uebucch/structs"
|
|
)
|
|
func worker(id int, jobs <-chan structs.WebhookJob) {
|
|
client := &http.Client{Timeout: 10 * time.Second}
|
|
|
|
for job := range jobs {
|
|
req, _ := http.NewRequest(job.Method, job.TargetURL, bytes.NewBuffer(job.Payload))
|
|
for k, v := range job.Headers {
|
|
req.Header[k] = v
|
|
}
|
|
|
|
resp, err := client.Do(req)
|
|
if err != nil {
|
|
log.Printf("Worker %d: Errore nell'inoltro: %v", id, err)
|
|
continue
|
|
}
|
|
resp.Body.Close()
|
|
log.Printf("Worker %d: Inoltrato con successo a %s", id, job.TargetURL)
|
|
}
|
|
} |