url-shortener/main.go

46 lines
820 B
Go
Raw Permalink Normal View History

2024-09-23 08:52:53 -07:00
package main
import (
2024-09-23 10:27:21 -07:00
"encoding/json"
2024-09-23 08:52:53 -07:00
"fmt"
2024-09-23 10:27:21 -07:00
"github.com/joho/godotenv"
"net/http"
2024-09-23 08:52:53 -07:00
)
2024-09-23 10:27:21 -07:00
type ShorterRequest struct {
Url string
}
2024-09-23 08:52:53 -07:00
func main() {
2024-09-23 10:27:21 -07:00
envError := godotenv.Load()
if envError != nil {
panic("Error loading .env file")
2024-09-23 08:52:53 -07:00
}
2024-09-23 10:27:21 -07:00
router := http.NewServeMux()
router.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World"))
})
router.HandleFunc("POST /shorten", func(w http.ResponseWriter, r *http.Request) {
requestData := ShorterRequest{}
err := json.NewDecoder(r.Body).Decode(&requestData)
if err != nil {
fmt.Println(err)
panic(err)
}
w.Write([]byte(requestData.Url))
})
server := http.Server{Addr: ":3000", Handler: router}
fmt.Println("URL Shortener is running on :3000")
err := server.ListenAndServe()
if err != nil {
return
}
}