feat: implement system statistics tracking, commit management controllers, and associated database migrations
All checks were successful
Build and Release / release (push) Successful in 1m49s

This commit is contained in:
2026-05-07 11:31:53 +07:00
parent ca05785a24
commit bdaac7ddd8
29 changed files with 1347 additions and 2 deletions

View File

@@ -16,6 +16,12 @@ func ProjectRoutes(
userRepo repositories.UserRepository,
) {
route := app.Group("/projects")
route.Get(
"/commits/:commitId",
middlewares.JwtAccess(userRepo),
commitController.GetCommitByID,
)
route.Post(
"/:id/commits",
@@ -35,6 +41,7 @@ func ProjectRoutes(
commitController.GetProjectCommits,
)
route.Post(
"/:id/members",
middlewares.JwtAccess(userRepo),

View File

@@ -0,0 +1,22 @@
package routes
import (
"history-api/internal/controllers"
"history-api/internal/middlewares"
"history-api/internal/repositories"
"history-api/pkg/constants"
"github.com/gofiber/fiber/v3"
)
func StatisticRoutes(app *fiber.App, statController *controllers.StatisticController, userRepo repositories.UserRepository) {
statGroup := app.Group(
"/statistics",
middlewares.JwtAccess(userRepo),
middlewares.RequireAnyRole(constants.RoleTypeAdmin, constants.RoleTypeMod),
)
statGroup.Get("/", statController.SearchStatistics)
statGroup.Get("/:date", statController.GetStatisticByDate)
}

View File

@@ -17,7 +17,7 @@ func UserRoutes(app *fiber.App, controller *controllers.UserController, userRepo
middlewares.JwtAccess(userRepo),
controller.GetUserCurrent,
)
route.Put(
"/current",
middlewares.JwtAccess(userRepo),
@@ -61,6 +61,13 @@ func UserRoutes(app *fiber.App, controller *controllers.UserController, userRepo
middlewares.RequireAnyRole(constants.RoleTypeAdmin, constants.RoleTypeMod),
controller.DeleteUser,
)
route.Put(
"/:id",
middlewares.JwtAccess(userRepo),
middlewares.RequireAnyRole(constants.RoleTypeAdmin, constants.RoleTypeMod),
controller.AdminUpdateProfile,
)
route.Get(
"/:id/media",
@@ -90,6 +97,13 @@ func UserRoutes(app *fiber.App, controller *controllers.UserController, userRepo
controller.RestoreUser,
)
route.Patch(
"/:id/password",
middlewares.JwtAccess(userRepo),
middlewares.RequireAnyRole(constants.RoleTypeAdmin, constants.RoleTypeMod),
controller.AdminResetPassword,
)
route.Patch(
"/:id/role",
middlewares.JwtAccess(userRepo),