user , role , login routes added

master
nima 2024-06-17 18:48:41 +03:30
parent 380a4570d9
commit 6d11f53425
1 changed files with 70 additions and 12 deletions

View File

@ -2,43 +2,80 @@ package router
import ( import (
"netina/database" "netina/database"
"netina/middlewares"
license_repository "netina/repositories/license" license_repository "netina/repositories/license"
owner_repository "netina/repositories/owner" owner_repository "netina/repositories/owner"
plan_repository "netina/repositories/plan" plan_repository "netina/repositories/plan"
role_repository "netina/repositories/role"
store_repository "netina/repositories/store" store_repository "netina/repositories/store"
user_repository "netina/repositories/user"
"netina/services" "netina/services"
auth "netina/services/authentication"
a "netina/services/authorization"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )
func LoginRoutes(e *echo.Echo) {
login := e.Group("/login")
login.POST("/phonenumber" , auth.RequestCode)
login.POST("/verifycode" , auth.Login)
}
func UserRoutes(e *echo.Echo){
db := database.Db()
user := e.Group("/user")
user.Use(middlewares.JWTMiddleware)
userCommandRepo := &user_repository.UserCommandRepository{DB: &db}
userQueryRepo := &user_repository.UserQueryRepository{DB: &db}
userService := &services.UserService{
CommandRepo: *userCommandRepo,
QueryRepo: *userQueryRepo,
}
user.POST("/" , userService.CreateUser , a.AdminRole)
user.GET("/:id" , userService.GetUser)
user.GET("/phonenumber" , userService.GetUserByPhoneNumber)
user.PUT("/:id" , userService.UpdateUser , a.AdminRole)
user.DELETE("/:id" , userService.RemoveUser,a.AdminRole)
}
func OwnerRoutes(e *echo.Echo) { func OwnerRoutes(e *echo.Echo) {
db := database.Db() db := database.Db()
owner := e.Group("/owner") owner := e.Group("/owner")
owner.Use(middlewares.JWTMiddleware)
ownerCommandRepo := &owner_repository.OwnerCommandRepository{DB: &db} ownerCommandRepo := &owner_repository.OwnerCommandRepository{DB: &db}
ownerQueryRepo := &owner_repository.OwnerQueryRepository{DB: &db} ownerQueryRepo := &owner_repository.OwnerQueryRepository{DB: &db}
ownerService := &services.OwnerService{ ownerService := &services.OwnerService{
CommandRepo: *ownerCommandRepo, CommandRepo: *ownerCommandRepo,
QueryRepo: *ownerQueryRepo, QueryRepo: *ownerQueryRepo,
} }
owner.POST("/",ownerService.CreateOwner) owner.POST("/",ownerService.CreateOwner,a.AdminRole)
owner.GET("/:id" , ownerService.GetOwner) owner.GET("/:id" , ownerService.GetOwner)
owner.PUT("/:id" , ownerService.UpdateOwner) owner.PUT("/:id" , ownerService.UpdateOwner,a.AdminRole)
owner.DELETE("/:id" , ownerService.RemoveOwner) owner.DELETE("/:id" , ownerService.RemoveOwner,a.AdminRole)
} }
func LicenseRoutes(e *echo.Echo) { func LicenseRoutes(e *echo.Echo) {
db := database.Db() db := database.Db()
license := e.Group("/license") license := e.Group("/license")
license.Use(middlewares.JWTMiddleware)
licenseCommandRepo := &license_repository.LicenseCommandRepository{DB: &db} licenseCommandRepo := &license_repository.LicenseCommandRepository{DB: &db}
licenseQueryRepo := &license_repository.LicenseQueryRepository{DB: &db} licenseQueryRepo := &license_repository.LicenseQueryRepository{DB: &db}
licenseService := &services.LicenseService{ licenseService := &services.LicenseService{
CommandRepo: *licenseCommandRepo, CommandRepo: *licenseCommandRepo,
QueryRepo: *licenseQueryRepo, QueryRepo: *licenseQueryRepo,
} }
license.POST("/",licenseService.CreateLicense) license.POST("/",licenseService.CreateLicense,a.AdminRole)
license.GET("/:id" , licenseService.GetLicense) license.GET("/:id" , licenseService.GetLicense)
license.PUT("/:id" , licenseService.UpdateLicense) license.PUT("/:id" , licenseService.UpdateLicense,a.AdminRole)
license.DELETE("/:id" , licenseService.RemoveLicense) license.DELETE("/:id" , licenseService.RemoveLicense,a.AdminRole)
} }
@ -46,16 +83,17 @@ func LicenseRoutes(e *echo.Echo) {
func PlanRoutes(e *echo.Echo) { func PlanRoutes(e *echo.Echo) {
db := database.Db() db := database.Db()
plan := e.Group("/plan") plan := e.Group("/plan")
plan.Use(middlewares.JWTMiddleware)
planCommandRepo := &plan_repository.PlanCommandRepository{DB: &db} planCommandRepo := &plan_repository.PlanCommandRepository{DB: &db}
planQueryRepo := &plan_repository.PlanQueryRepository{DB: &db} planQueryRepo := &plan_repository.PlanQueryRepository{DB: &db}
planService := &services.PlanService{ planService := &services.PlanService{
CommandRepo: *planCommandRepo, CommandRepo: *planCommandRepo,
QueryRepo: *planQueryRepo, QueryRepo: *planQueryRepo,
} }
plan.POST("/",planService.CreatePlan) plan.POST("/",planService.CreatePlan,a.AdminRole)
plan.GET("/:id" , planService.GetPlan) plan.GET("/:id" , planService.GetPlan)
plan.PUT("/:id" , planService.UpdatePlan) plan.PUT("/:id" , planService.UpdatePlan,a.AdminRole)
plan.DELETE("/:id" , planService.RemovePlan) plan.DELETE("/:id" , planService.RemovePlan,a.AdminRole)
} }
@ -63,16 +101,36 @@ func PlanRoutes(e *echo.Echo) {
func StoreRoutes(e *echo.Echo) { func StoreRoutes(e *echo.Echo) {
db := database.Db() db := database.Db()
store := e.Group("/store") store := e.Group("/store")
store.Use(middlewares.JWTMiddleware)
storeCommandRepo := &store_repository.StoreCommandRepository{DB: &db} storeCommandRepo := &store_repository.StoreCommandRepository{DB: &db}
storeQueryRepo := &store_repository.StoreQueryRepository{DB: &db} storeQueryRepo := &store_repository.StoreQueryRepository{DB: &db}
storeService := &services.StoreService{ storeService := &services.StoreService{
CommandRepo: *storeCommandRepo, CommandRepo: *storeCommandRepo,
QueryRepo: *storeQueryRepo, QueryRepo: *storeQueryRepo,
} }
store.POST("/",storeService.CreateStore) store.POST("/",storeService.CreateStore,a.AdminRole)
store.GET("/:id" , storeService.GetStore) store.GET("/:id" , storeService.GetStore)
store.GET("/owner/:id" , storeService.GetStoresList) store.GET("/owner/:id" , storeService.GetStoresList)
store.PUT("/:id" , storeService.UpdateStore) store.PUT("/:id" , storeService.UpdateStore,a.AdminRole)
store.DELETE("/:id" , storeService.RemoveStore) store.DELETE("/:id" , storeService.RemoveStore,a.AdminRole)
} }
func RoleRoutes(e *echo.Echo) {
db := database.Db()
role := e.Group("/role")
role.Use(middlewares.JWTMiddleware)
roleCommandRepo := &role_repository.RoleCommandRepository{DB: &db}
roleQueryRepo := &role_repository.RoleQueryRepository{DB: &db}
roleService := &services.RoleService{
CommandRepo: *roleCommandRepo,
QueryRepo: *roleQueryRepo,
}
role.POST("/",roleService.CreateRole,a.AdminRole)
role.GET("/:id" , roleService.GetRole)
role.PUT("/:id" , roleService.UpdateRole,a.AdminRole)
role.DELETE("/:id" , roleService.RemoveRole,a.AdminRole)
}