package main import ( "context" "database/sql" "encoding/json" "log" "net/http" "git.katuwoss.dev/JustScreaMy/secret-santa/internal/queries" "git.katuwoss.dev/JustScreaMy/secret-santa/internal/types" _ "github.com/mattn/go-sqlite3" ) var dbConnection *sql.DB func init() { var err error dbConnection, err = sql.Open("sqlite3", "./test.db") if err != nil { log.Fatal(err) } log.Println("Database sucessfully connected") } func main() { ctx := context.Background() log.Println("Created database connection") router := http.NewServeMux() router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { query := queries.New(dbConnection) w.Header().Set("Content-Type", "application/json") users, err := query.GetUsers(ctx) if err != nil { w.WriteHeader(404) log.Printf("Failed to get all users: %s\n", err.Error()) json.NewEncoder(w).Encode(types.ErrorResponse{Message: err.Error()}) return } if len(users) == 0 { users = make([]queries.User, 0) } json.NewEncoder(w).Encode(types.JsonResponse[[]queries.User]{Data: users}) }) log.Fatal(http.ListenAndServe(":8080", router)) }