pejhancctv/repositories/User.go

145 lines
3.9 KiB
Go

package repositories
import (
"app/models"
"gorm.io/gorm"
)
type User interface {
Create(u *models.User) error
//GetAll()([]models.User,error)
GetByName(name string) ([]models.User, error)
GetByID(id uint) (*models.User, error)
UpdateUserName(name string, id uint) error
UpdateEmail(email string, id uint) error
UpdatePassword(password string, id uint) error
UpdateRole(newRole string, id uint) error
UpdateNationalCode(newCode string, id uint) error
UpdateBirthDay(newBirthDay string, id uint) error
UpdateFirstName(firstName string, id uint) error
UpdateLastName(lastName string, id uint) error
Delete(id uint) error
}
type User_repository struct {
DB *gorm.DB
}
func newUserRepository(db *gorm.DB) User {
return &User_repository{DB: db}
}
func (r *User_repository) Create(user *models.User) error {
// if user.Password != "" {
// pw := user.Password
// hashpw, err := utils.HashPW(pw)
// if err != nil {
// return err
// }
// user.Password = hashpw
// }
if err := r.DB.Create(&user).Error; err != nil {
return err
}
return nil
}
// func (r *User_repository)GetAll()([]models.User,error){
// var user []models.User
// if err := r.DB.Find(&user).
// }
func (r *User_repository) GetByName(name string) ([]models.User, error) {
var user []models.User
if err := r.DB.Where("is_removed = ?", false).Where("username = ? ", name).Limit(12).Find(&user).Error; err != nil {
return nil, err
}
return user, nil
}
func (r *User_repository) GetByID(id uint) (*models.User, error) {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).First(&user).Error; err != nil {
return nil, err
}
return &user, nil
}
func (r *User_repository) UpdateUserName(name string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("username", name).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateEmail(email string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("email", email).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdatePassword(password string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("password", password).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateRole(newRole string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("role", newRole).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateNationalCode(newCode string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("national_code", newCode).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateBirthDay(newBirthDay string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("birth_day", newBirthDay).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateFirstName(firstName string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("first_name", firstName).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) UpdateLastName(lastName string, id uint) error {
var user models.User
if err := r.DB.Where("is_removed = ?", false).Where("user_id = ? ", id).Model(&user).Update("last_name", lastName).Error; err != nil {
return err
}
return nil
}
func (r *User_repository) Delete(id uint) error {
var user models.User
if err := r.DB.Where("User_id = ?", id).Model(&user).Update("is_removed", true).Error; err != nil {
return err
}
return nil
}