Пакеты для изучения:
github.com/gin-gonic/gin
https://gorm.io/index.html github.com/spf13/viper
type userParams={
name: string
last_name: string
surname: string
phone: string
email: string
email_verification: boolean
passport_date: string
passport_series: string
passport_number: string
passport_by: string
certificate_number: string
certificate_date: string
certificate_school_name: string
average_point: number
is_general_education: boolean
is_citizenship: boolean
role: string
// secretary - секретарь
// entree - абитуриент
// student - студент
user_parents: UserParents[]
user_estimates: UserEstimates[]
}
type User struct {
Id uuid.UUID `gorm:"PrimaryKey" json:"id"`
Name string `json:"name"`
Password string `json:"password"`
LastName string `json:"last_name"`
Surname string `json:"surname"`
Phone string `json:"phone"`
Email string `json:"email"`
EmailVerification bool `json:"email_verification"`
PassportDate string `json:"passport_date"`
PassportSeries string `json:"passport_series"`
PassportNumber string `json:"passport_number"`
PassportBy string `json:"passport_by"`
CertificateNumber string `json:"certificate_number"`
CertificateDate string `json:"certificate_date"`
CertificateSchoolName string `json:"certificate_school_name"`
IsGeneralEducation bool `json:"is_general_education"`
IsCitizenship bool `json:"is_citizenship"`
Role string `json:"role"`
// secretary - секретарь
// entree - абитуриент
// student - студент
AveragePoint float64 `json:"average_point,omitempty"`
UserParents []UserParents `gorm:"many2many:user_user_parents;" json:"user_parents,omitempty"`
UserEstimates []UserEstimates `gorm:"many2many:user_user_estimates;" json:"user_estimates,omitempty"`
}
type estmsParams={
estmt_name :string
grade: string
}
type UserEstimates struct {
Id uuid.UUID `gorm:"PrimaryKey" json:"id"`
Name string `json:"name"`
Grade string `json:"grade"`
UserId uuid.UUID `gorm:"foreignKey:Id" json:"user_id"`
}
type parentsParams={
name :string
last_name: string
surname: string
phone: string
}
type UserParents struct {
Id uuid.UUID `gorm:"PrimaryKey" json:"id"`
Name string `json:"name"`
LastName string `json:"last_name"`
Surname string `json:"surname"`
Phone string `json:"phone"`
UserId uuid.UUID `gorm:"foreignKey:Id" json:"user_id"`
}
type response = {
error: false,
token: tokenString,
}
type params={
email: string
password: string
}
var UserPassword struct{
Email string `json:"email"`
Password string `json:"password"`
}
type response = {
error: false,
token: tokenString,
userId: userId
}
type response = {
error: true,
result: "Не правильно введен Пароль",
}
type response = {
error: true,
result: "Не введен email или пароль",
}
type response = {
error: true,
result: "Не правильно введен email",
}
type response = {
"error": true,
"result": "не получилось создать токен",
}
type params = {
email:string
password: string
}
var UserPassword struct {
Email string `json:"email"`
Password string `json:"password"`
}
type response = {
"error": false,
"result": "Пароль успешно изменён",
}
type response = {
"error": true,
"result": "Email не совпал с почтой из базы",
}
type response = {
"error": true,
"result": "error",
}
type response = {
"error": true,
"result": "Неверно указана почта",
}
type response = {
"error": true,
"result": "Укажите email пользователя",
}
type params = {
email: string,
code: string
}
var Verification struct {
Email string
Code string
}
type response = {
error: false,
result: true,
}
type response = {
error: true,
result: "Укажите email пользователя",
}
type response = {
error: true,
result: "Неверно указана почта",
}
Почта или код не существует в базе данных ( можно доработать и сделать проверку чего конкретно нет )
type response = {
error: true,
result: "Не правильно введен email или проверочный код",
}
type params = {
email: string
}
var EmailType struct {
Email string `json:"email"`
}
type response = {
error: false
}
type response = {
error: true,
result: "Укажите email пользователя",
}
type response = {
error: true,
result: "Неверно указана почта",
}
По какой то причине произошла ошибки при отправке, тяжело сделать обработчик возможно поможет отправить снова, в будущем может что то придумаем если такое случится
type response = {
error: true,
result: "Произошла какая то непредвиденная ошибка",
}
Вытягивание всех абитуриентов
type response = {
"error": false,
"user": user,
}
Обновление данных об аттестате
type params={
esmtName:string,
grade:string
}
type response = {
"error": false,
"estms": estimates,
}
type response = {
"error": true,
"result": "Нет такой записи",
}
type response = {
"error": true,
"result": err,
}
Обновление данных о родителях
type params={
parents_name: string,
parentsLast_name: string,
parents_surname: string,
}
type response = {
"error": false,
"result": "Данные успешно изменены",
"parents": parents,
}
type response = {
"error": true,
"result": "такой пользователь не найден",
}
type response = {
"error": true,
"result": err,
}
Обновление данных о родителях
type params={
parents_name: string,
parentsLast_name: string,
parents_surname: string,
}
type response = {
"error": false,
"result": "Данные успешно изменены",
"parents": parents,
}
type response = {
"error": true,
"result": "такой пользователь не найден",
}
type response = {
"error": false,
"result": "Данные успешно изменены",
"user": userpass,
}
Получение пользователей по роле
type response = {
"error": false,
"users": usersRoleList,
}
type response = {
"error": true,
"result": "пользователей с такой ролью не существует",
}