51 lines
979 B
Go
51 lines
979 B
Go
package repository
|
|
|
|
import (
|
|
"users_management/m/model/entity"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type UsersRepo interface {
|
|
Post(user entity.User) error
|
|
GetRoleByDepartment(departmentName string) (entity.Role, error)
|
|
GetUserByUsername(username string) (entity.User, error)
|
|
}
|
|
|
|
type usersRepo struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewUsersRepo(db *gorm.DB) UsersRepo {
|
|
return &usersRepo{
|
|
db: db,
|
|
}
|
|
}
|
|
|
|
func (r *usersRepo) Post(user entity.User) error {
|
|
err := r.db.Create(&user).Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (r *usersRepo) GetRoleByDepartment(departmentName string) (entity.Role, error) {
|
|
var role entity.Role
|
|
err := r.db.Where("name = ?", departmentName).First(&role).Error
|
|
if err != nil {
|
|
return role, err
|
|
}
|
|
return role, nil
|
|
}
|
|
|
|
func (r *usersRepo) GetUserByUsername(username string) (entity.User, error) {
|
|
var users entity.User
|
|
err := r.db.Where("username = ?", username).First(&users).Error
|
|
if err != nil {
|
|
return users, err
|
|
}
|
|
return users, nil
|
|
}
|
|
|