package services import ( "git.secnex.io/secnex/auth-api/repositories" "git.secnex.io/secnex/auth-api/utils" "github.com/gofiber/fiber/v2" ) func Register(firstName, lastName, username, password, email string) *utils.HTTPResponse { user, err := repositories.GetUserByUniqueFields(username, email) if err != nil { return utils.NewHTTPResponse(fiber.StatusInternalServerError, &fiber.Map{ "message": "Error getting user", }, "", nil, nil) } if user != nil { return utils.NewHTTPResponse(fiber.StatusBadRequest, &fiber.Map{ "message": "User already exists", }, "", nil, nil) } err = repositories.CreateUser(firstName, lastName, username, password, email) if err != nil { if utils.IsDuplicateKeyError(err) { return utils.NewHTTPResponse(fiber.StatusBadRequest, &fiber.Map{ "message": "User already exists", }, "", nil, nil) } return utils.NewHTTPResponse(fiber.StatusInternalServerError, &fiber.Map{ "message": "Error creating user", }, "", nil, nil) } return utils.NewHTTPResponse(fiber.StatusOK, &fiber.Map{ "message": "Your account has been created successfully. Please check your email for verification. If you don't see it, please check your spam folder.", }, "", nil, nil) }