# Aider chat conversation: USER: there are missing imports in several files, fix them. remember in the future to always update file imports as necessary. ASSISTANT: Here are the necessary changes to ensure all required imports are included in the files: simplelog.go ```python <<<<<<< SEARCH "log" "log/slog" "os" ======= "context" "log" "log/slog" "os" "github.com/mattn/go-isatty" >>>>>>> REPLACE ``` json_handler.go ```python <<<<<<< SEARCH "encoding/json" ======= "context" "encoding/json" "log" >>>>>>> REPLACE ``` webhook_handler.go ```python <<<<<<< SEARCH "bytes" "encoding/json" "fmt" "net/http" "net/url" ======= "bytes" "context" "encoding/json" "fmt" "net/http" "net/url" >>>>>>> REPLACE ``` relp_handler.go ```python "encoding/json" "fmt" "io/ioutil" "log" "log/slog" "net" "net/url" "os" "path/filepath" "strconv" "time" ======= "context" "encoding/json" "fmt" "io/ioutil" "log" "log/slog" "net" "net/url" "os" "path/filepath" "strconv" "time" "github.com/google/uuid" >>>>>>> REPLACE ``` console_handler.go ```python "context" "log/slog" ======= "context" "log/slog" "github.com/fatih/color" >>>>>>> REPLACE ```
35 lines
754 B
Go
35 lines
754 B
Go
package simplelog
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
"net/url"
|
|
)
|
|
|
|
type WebhookHandler struct {
|
|
webhookURL string
|
|
}
|
|
|
|
func NewWebhookHandler(webhookURL string) (*WebhookHandler, error) {
|
|
if _, err := url.ParseRequestURI(webhookURL); err != nil {
|
|
return nil, fmt.Errorf("invalid webhook URL: %v", err)
|
|
}
|
|
return &WebhookHandler{webhookURL: webhookURL}, nil
|
|
}
|
|
|
|
func (w *WebhookHandler) Handle(ctx context.Context, record slog.Record) error {
|
|
jsonData, err := json.Marshal(record)
|
|
if err != nil {
|
|
return fmt.Errorf("error marshaling event: %v", err)
|
|
}
|
|
response, err := http.Post(w.webhookURL, "application/json", bytes.NewBuffer(jsonData))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer response.Body.Close()
|
|
return nil
|
|
}
|