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 }