whoop/main.go
Sphericalkat edd528960d
Initial commit
Signed-off-by: Sphericalkat <me@kat.bio>
2024-06-16 18:04:40 +05:30

44 lines
858 B
Go

package main
import (
"fmt"
"log/slog"
"os"
"github.com/SphericalKat/whoop/whoop"
"github.com/gofiber/fiber/v2"
"golang.org/x/oauth2"
)
func main() {
oauthConf, err := whoop.InjectOauthConfig()
if err != nil {
slog.Error("error injecting oauth config", "err", err)
os.Exit(1)
}
app := fiber.New(fiber.Config{
DisableStartupMessage: true,
})
url := oauthConf.WhoopLoginConfig.AuthCodeURL("state", oauth2.AccessTypeOffline)
fmt.Println("Visit the URL for the auth dialog: ", url)
app.Get("/oauth2/callback", func(c *fiber.Ctx) error {
code := c.Query("code")
if code == "" {
return c.SendStatus(fiber.StatusBadRequest)
}
token, err := oauthConf.WhoopLoginConfig.Exchange(c.Context(), code)
if err != nil {
return c.SendStatus(fiber.StatusInternalServerError)
}
return c.JSON(token)
})
app.Listen(":8000")
}