diff --git a/.gitignore b/.gitignore index 3fd3dde..ed18e73 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ go.work !*.go !*.html +!*.css !go.sum !go.mod !*.sql diff --git a/internal/controllers/user_controller.go b/internal/controllers/user_controller.go index 621c7f4..277a6a6 100644 --- a/internal/controllers/user_controller.go +++ b/internal/controllers/user_controller.go @@ -40,7 +40,6 @@ func (uc *UserController) RegisterUser(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"error": "Not a valid subscription model"}) return } - regData.User.Membership.SubscriptionModel = *selectedModel // Register User id, token, err := uc.Service.RegisterUser(®Data.User) @@ -51,14 +50,6 @@ func (uc *UserController) RegisterUser(c *gin.Context) { } regData.User.ID = id - // Register Bank Account - /* _, err = uc.BankAccountService.RegisterBankAccount(®Data.User.BankAccount) - if err != nil { - logger.Error.Printf("Couldn't register bank account: %v", err) - c.JSON(http.StatusInternalServerError, gin.H{"error": "Couldn't register User-BankAccount"}) - return - } */ - // Register Consents var consents = [2]models.Consent{ { @@ -83,14 +74,6 @@ func (uc *UserController) RegisterUser(c *gin.Context) { } } - // Register Membership - /* _, err = uc.MembershipService.RegisterMembership(®Data.User.Membership) - if err != nil { - logger.Error.Printf("Couldn't register membership: %v", err) - c.JSON(http.StatusInternalServerError, gin.H{"error": "Couldn't register User-membership"}) - return - } */ - // Send notifications if err := uc.EmailService.SendVerificationEmail(®Data.User, &token); err != nil { logger.Error.Printf("Failed to send email verification email to user: %v", err) @@ -113,26 +96,26 @@ func (uc *UserController) VerifyMailHandler(c *gin.Context) { token := c.Query("token") if token == "" { logger.Error.Println("Missing token to verify mail") - c.JSON(http.StatusNoContent, gin.H{"error": "Missing token"}) + c.HTML(http.StatusBadRequest, "verification_error.html", gin.H{"ErrorMessage": "Missing token"}) return } user, err := uc.Service.VerifyUser(&token) if err != nil { logger.Error.Printf("Cannot verify user: %v", err) - c.JSON(http.StatusUnauthorized, gin.H{"error": "Cannot verify user"}) + c.HTML(http.StatusUnauthorized, "verification_error.html", gin.H{"ErrorMessage": "Emailadresse wurde schon bestätigt. Sollte dies nicht der Fall sein, wende Dich bitte an info@carsharing-hasloh.de."}) return } membership, err := uc.MembershipService.FindMembershipByUserID(user.ID) if err != nil { logger.Error.Printf("Cannot get membership of user %v: %v", user.ID, err) - c.JSON(http.StatusInternalServerError, gin.H{"error": "Cannot get Membership of user"}) + c.HTML(http.StatusInternalServerError, "verifiction_error.html", gin.H{"ErrorMessage": "Nutzer konnte nicht gefunden werden.. Merkwürdig.. wende Dich bitte an info@carsharing-hasloh.de."}) return } uc.EmailService.SendWelcomeEmail(user, membership) - c.Status(http.StatusOK) + c.HTML(http.StatusOK, "verification_success.html", gin.H{"FirstName": user.FirstName}) } diff --git a/internal/models/membership.go b/internal/models/membership.go index e54082f..60971a0 100644 --- a/internal/models/membership.go +++ b/internal/models/membership.go @@ -7,9 +7,9 @@ type Membership struct { UpdatedAt time.Time StartDate time.Time `json:"start_date"` EndDate time.Time `json:"end_date"` - Children *[]User `gorm:"foreignKey:ParentMemberID"` Status string `json:"status"` SubscriptionModel SubscriptionModel `gorm:"foreignKey:SubscriptionModelID" json:"subscription_model"` + ParentMembershipID int64 `json:"parent_member_id" validate:"omitempty,omitnil,number"` SubscriptionModelID int64 `json:"subsription_model_id"` ID int64 `json:"id"` UserID int64 `json:"user_id"` diff --git a/internal/models/user.go b/internal/models/user.go index a7a2d16..c48151c 100644 --- a/internal/models/user.go +++ b/internal/models/user.go @@ -25,7 +25,6 @@ type User struct { BankAccount BankAccount `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"bank_account"` Verification Verification `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"` Membership Membership `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"membership"` - ParentMemberID int64 `json:"parent_member_id" validate:"omitempty,number"` ID int64 `gorm:"primaryKey"` PaymentStatus int8 `json:"payment_status"` Status int8 `json:"status"` diff --git a/internal/server/server.go b/internal/server/server.go index d1632b4..dfe7947 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -43,6 +43,9 @@ func Run() { router := gin.Default() // gin.SetMode(gin.ReleaseMode) + router.Static("/templates/css", "./style") + // Load HTML templates + router.LoadHTMLGlob("templates/html/*") router.Use(gin.Logger()) // router.Use(middlewares.LoggerMiddleware()) diff --git a/templates/css/style.css b/templates/css/style.css new file mode 100644 index 0000000..42e4d58 --- /dev/null +++ b/templates/css/style.css @@ -0,0 +1,28 @@ +body { + font-family: Arial, sans-serif; + background-color: #f8f9fa; + color: #333; + margin: 0; + padding: 0; +} + +.container { + max-width: 800px; + margin: 0 auto; + padding: 20px; +} + +h1 { + color: #0056b3; + text-align: center; +} + +p { + font-size: 18px; + line-height: 1.6; +} + +.error-message { + color: red; + font-weight: bold; +} diff --git a/templates/email/mail_registration.html b/templates/email/mail_registration.html index 4df371c..37f26b7 100644 --- a/templates/email/mail_registration.html +++ b/templates/email/mail_registration.html @@ -53,7 +53,7 @@
Ein neues Mitglied!!!
{{.FirstName}} {{.LastName}} hat
- sich regitriert.
+ sich registriert.
+
+ + So ein Mist! ++
+ 🧐
+
+
+ Da ist etwas schiefgelaufen, wir konnten Deine E-Mail Adresse
+ nicht bestätigen:
+
+
+ {{ .ErrorMessage }}
+
+ |
+