main.go 871 Bytes
package main

import (
	"log"
	"os"

	"github.com/gofiber/fiber/v3"
	"gorm.io/driver/postgres"
	"gorm.io/gorm"
	"ui.ac.id/dtd/go-webserver-boilerplate/internal/handler"
	"ui.ac.id/dtd/go-webserver-boilerplate/internal/repository/postgresql"
	"ui.ac.id/dtd/go-webserver-boilerplate/internal/service"
)

func main() {
	db, err := gorm.Open(postgres.Open(""), &gorm.Config{})

	if err != nil {
		log.Fatal(err)
		os.Exit(1)
	}

	userRepository := postgresql.NewPostgresUserRepository(db)
	userService := service.NewUserService(userRepository)
	userHandler := handler.NewUserHandler(userService)

	app := fiber.New(fiber.Config{
		ErrorHandler: handler.ErrorHandler,
	})

	//api group
	api := app.Group("/api")

	//v1 api
	v1 := api.Group("/v1")

	//user group
	user := v1.Group("/user")
	user.Get("/:id", userHandler.GetUserDetail)
	user.Get("/", userHandler.GetUserList)
}