From ce18324391fe341ab43ab585ac4b32c43fd85bd2 Mon Sep 17 00:00:00 2001 From: Alex <$(pass /github/email)> Date: Sat, 15 Mar 2025 00:12:46 +0100 Subject: [PATCH] backend: add car --- .../internal/controllers/car_controller.go | 118 ++++++++++++++++ go-backend/internal/database/db.go | 4 + go-backend/internal/models/Insurance.go | 13 ++ go-backend/internal/models/car.go | 133 ++++++++++++++++++ .../internal/repositories/car_repository.go | 69 +++++++++ go-backend/internal/routes/routes.go | 6 +- go-backend/internal/server/server.go | 4 +- go-backend/internal/services/car_service.go | 67 +++++++++ 8 files changed, 412 insertions(+), 2 deletions(-) create mode 100644 go-backend/internal/controllers/car_controller.go create mode 100644 go-backend/internal/models/Insurance.go create mode 100644 go-backend/internal/models/car.go create mode 100644 go-backend/internal/repositories/car_repository.go create mode 100644 go-backend/internal/services/car_service.go diff --git a/go-backend/internal/controllers/car_controller.go b/go-backend/internal/controllers/car_controller.go new file mode 100644 index 0000000..5e01b36 --- /dev/null +++ b/go-backend/internal/controllers/car_controller.go @@ -0,0 +1,118 @@ +package controllers + +import ( + "GoMembership/internal/constants" + "GoMembership/internal/models" + "GoMembership/internal/services" + "GoMembership/internal/utils" + "GoMembership/pkg/errors" + "GoMembership/pkg/logger" + "fmt" + "net/http" + + "github.com/gin-gonic/gin" +) + +type CarController struct { + S services.CarServiceInterface + UserService services.UserServiceInterface +} + +func (cr *CarController) Create(c *gin.Context) { + requestUser, err := cr.UserService.FromContext(c) + if err != nil { + utils.RespondWithError(c, err, "Error extracting user from context in Create car handler", http.StatusBadRequest, errors.Responses.Fields.User, errors.Responses.Keys.NoAuthToken) + return + } + if !requestUser.HasPrivilege(constants.Priviliges.Create) { + utils.RespondWithError(c, errors.ErrNotAuthorized, fmt.Sprintf("Not allowed to create a car. RoleID(%v)