MIF_E31222379_BE/internal/identitycart/identitycart_route.go

47 lines
1.2 KiB
Go

package identitycart
import (
"rijig/config"
"rijig/internal/authentication"
"rijig/internal/userprofile"
"rijig/middleware"
"rijig/utils"
"github.com/gofiber/fiber/v2"
)
func UserIdentityCardRoute(api fiber.Router) {
identityRepo := NewIdentityCardRepository(config.DB)
authRepo := authentication.NewAuthenticationRepository(config.DB)
userRepo := userprofile.NewUserProfileRepository(config.DB)
identityService := NewIdentityCardService(identityRepo, authRepo, userRepo)
identityHandler := NewIdentityCardHandler(identityService)
identity := api.Group("/identity")
identity.Post("/create",
middleware.AuthMiddleware(),
middleware.RequireRoles(utils.RolePengepul),
identityHandler.CreateIdentityCardHandler,
)
identity.Get("/:id",
middleware.AuthMiddleware(),
identityHandler.GetIdentityByID,
)
identity.Get("/s",
middleware.AuthMiddleware(),
identityHandler.GetIdentityByUserId,
)
identity.Get("/",
middleware.AuthMiddleware(),
middleware.RequireRoles(utils.RoleAdministrator),
identityHandler.GetAllIdentityCardsByRegStatus,
)
identity.Patch("/:userId/status",
middleware.AuthMiddleware(),
middleware.RequireRoles(utils.RoleAdministrator),
identityHandler.UpdateUserRegistrationStatusByIdentityCard,
)
}