new licenceController, moved api handling & renaming things
This commit is contained in:
@@ -4,17 +4,17 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type DriversLicence struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
Status int8 `json:"status" binding:"omitempty,number"`
|
||||
LicenceNumber string `json:"number" binding:"omitempty,euDriversLicence,safe_content"`
|
||||
IssuedDate time.Time `json:"issued_date" binding:"omitempty,lte"`
|
||||
ExpirationDate time.Time `json:"expiration_date" binding:"omitempty,gt"`
|
||||
IssuingCountry string `json:"country" binding:"safe_content"`
|
||||
LicenceCategories []LicenceCategory `json:"licence_categories" gorm:"many2many:licence_2_categories"`
|
||||
type Licence struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
Status int8 `json:"status" binding:"omitempty,number"`
|
||||
Number string `json:"number" binding:"omitempty,euDriversLicence,safe_content"`
|
||||
IssuedDate time.Time `json:"issued_date" binding:"omitempty,lte"`
|
||||
ExpirationDate time.Time `json:"expiration_date" binding:"omitempty,gt"`
|
||||
IssuingCountry string `json:"country" binding:"safe_content"`
|
||||
Categories []Category `json:"licence_categories" gorm:"many2many:licence_2_categories"`
|
||||
}
|
||||
|
||||
type LicenceCategory struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
Category string `json:"category" binding:"safe_content"`
|
||||
type Category struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
Name string `json:"category" binding:"safe_content"`
|
||||
}
|
||||
|
||||
@@ -10,31 +10,31 @@ import (
|
||||
|
||||
type User struct {
|
||||
gorm.Model
|
||||
DateOfBirth time.Time `gorm:"not null" json:"date_of_birth" binding:"required,safe_content"`
|
||||
Company string `json:"company" binding:"omitempty,omitnil,safe_content"`
|
||||
Phone string `json:"phone" binding:"omitempty,omitnil,safe_content"`
|
||||
Notes string `json:"notes" binding:"safe_content"`
|
||||
FirstName string `gorm:"not null" json:"first_name" binding:"required,safe_content"`
|
||||
Password string `json:"password" binding:"required_unless=RoleID 0,safe_content"`
|
||||
Email string `gorm:"unique;not null" json:"email" binding:"required,email,safe_content"`
|
||||
LastName string `gorm:"not null" json:"last_name" binding:"required,safe_content"`
|
||||
ProfilePicture string `json:"profile_picture" binding:"omitempty,omitnil,image,safe_content"`
|
||||
Address string `gorm:"not null" json:"address" binding:"required,safe_content"`
|
||||
ZipCode string `gorm:"not null" json:"zip_code" binding:"required,alphanum,safe_content"`
|
||||
City string `form:"not null" json:"city" binding:"required,alphaunicode,safe_content"`
|
||||
Consents []Consent `gorm:"constraint:OnUpdate:CASCADE"`
|
||||
BankAccount BankAccount `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"bank_account"`
|
||||
BankAccountID uint
|
||||
Verification Verification `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
||||
VerificationID uint
|
||||
Membership Membership `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"membership"`
|
||||
MembershipID uint
|
||||
DriversLicence DriversLicence `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"drivers_licence"`
|
||||
DriversLicenceID uint
|
||||
ID uint `json:"id"`
|
||||
PaymentStatus int8 `json:"payment_status"`
|
||||
Status int8 `json:"status"`
|
||||
RoleID int8 `json:"role_id"`
|
||||
DateOfBirth time.Time `gorm:"not null" json:"date_of_birth" binding:"required,safe_content"`
|
||||
Company string `json:"company" binding:"omitempty,omitnil,safe_content"`
|
||||
Phone string `json:"phone" binding:"omitempty,omitnil,safe_content"`
|
||||
Notes string `json:"notes" binding:"safe_content"`
|
||||
FirstName string `gorm:"not null" json:"first_name" binding:"required,safe_content"`
|
||||
Password string `json:"password" binding:"required_unless=RoleID 0,safe_content"`
|
||||
Email string `gorm:"unique;not null" json:"email" binding:"required,email,safe_content"`
|
||||
LastName string `gorm:"not null" json:"last_name" binding:"required,safe_content"`
|
||||
ProfilePicture string `json:"profile_picture" binding:"omitempty,omitnil,image,safe_content"`
|
||||
Address string `gorm:"not null" json:"address" binding:"required,safe_content"`
|
||||
ZipCode string `gorm:"not null" json:"zip_code" binding:"required,alphanum,safe_content"`
|
||||
City string `form:"not null" json:"city" binding:"required,alphaunicode,safe_content"`
|
||||
Consents []Consent `gorm:"constraint:OnUpdate:CASCADE"`
|
||||
BankAccount BankAccount `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"bank_account"`
|
||||
BankAccountID uint
|
||||
Verification Verification `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
|
||||
VerificationID uint
|
||||
Membership Membership `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"membership"`
|
||||
MembershipID uint
|
||||
Licence Licence `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"licence"`
|
||||
LicenceID uint
|
||||
ID uint `json:"id"`
|
||||
PaymentStatus int8 `json:"payment_status"`
|
||||
Status int8 `json:"status"`
|
||||
RoleID int8 `json:"role_id"`
|
||||
}
|
||||
|
||||
func (u *User) AfterCreate(tx *gorm.DB) (err error) {
|
||||
@@ -99,14 +99,14 @@ func (u *User) Safe() map[string]interface{} {
|
||||
"bic": u.BankAccount.BIC,
|
||||
"mandate_reference": u.BankAccount.MandateReference,
|
||||
},
|
||||
"drivers_licence": map[string]interface{}{
|
||||
"id": u.DriversLicence.ID,
|
||||
"licence_number": u.DriversLicence.LicenceNumber,
|
||||
"status": u.DriversLicence.Status,
|
||||
"issued_date": u.DriversLicence.IssuedDate,
|
||||
"expiration_date": u.DriversLicence.ExpirationDate,
|
||||
"country": u.DriversLicence.IssuingCountry,
|
||||
"licence_categories": u.DriversLicence.LicenceCategories,
|
||||
"licence": map[string]interface{}{
|
||||
"id": u.Licence.ID,
|
||||
"number": u.Licence.Number,
|
||||
"status": u.Licence.Status,
|
||||
"issued_date": u.Licence.IssuedDate,
|
||||
"expiration_date": u.Licence.ExpirationDate,
|
||||
"country": u.Licence.IssuingCountry,
|
||||
"licence_categories": u.Licence.Categories,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user