add: verification status page

This commit is contained in:
$(pass /github/name)
2024-07-12 12:07:38 +02:00
parent 03a2b3bdc5
commit 18d91d396b
10 changed files with 242 additions and 26 deletions

View File

@@ -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(&regData.User)
@@ -51,14 +50,6 @@ func (uc *UserController) RegisterUser(c *gin.Context) {
}
regData.User.ID = id
// Register Bank Account
/* _, err = uc.BankAccountService.RegisterBankAccount(&regData.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(&regData.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(&regData.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})
}

View File

@@ -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"`

View File

@@ -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"`

View File

@@ -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())