57 lines
1.6 KiB
Go
57 lines
1.6 KiB
Go
package user
|
|
|
|
import (
|
|
"Yimaru-Backend/internal/domain"
|
|
"context"
|
|
"strconv"
|
|
)
|
|
|
|
func (s *Service) IsUserPending(ctx context.Context, userName string) (bool, error) {
|
|
return s.userStore.IsUserPending(ctx, userName)
|
|
}
|
|
|
|
func (s *Service) IsUserNameUnique(ctx context.Context, userName string) (bool, error) {
|
|
return s.userStore.IsUserNameUnique(ctx, userName)
|
|
}
|
|
|
|
func (s *Service) GetUserByUserName(
|
|
ctx context.Context,
|
|
userName string,
|
|
) (domain.User, error) {
|
|
return s.userStore.GetUserByUserName(ctx, userName)
|
|
}
|
|
|
|
func (s *Service) SearchUserByNameOrPhone(ctx context.Context, searchString string, role *int64) ([]domain.User, error) {
|
|
// Search user
|
|
var roleStr *string
|
|
if role != nil {
|
|
tmp := strconv.FormatInt(*role, 10)
|
|
roleStr = &tmp
|
|
}
|
|
return s.userStore.SearchUserByNameOrPhone(ctx, searchString, roleStr)
|
|
|
|
}
|
|
func (s *Service) UpdateUser(ctx context.Context, req domain.UpdateUserReq) error {
|
|
newUser := domain.User{
|
|
ID: req.UserID,
|
|
FirstName: req.FirstName.Value,
|
|
LastName: req.LastName.Value,
|
|
UserName: req.UserName.Value,
|
|
Age: req.Age.Value,
|
|
EducationLevel: req.EducationLevel.Value,
|
|
Country: req.Country.Value,
|
|
Region: req.Region.Value,
|
|
}
|
|
|
|
// Update user in the store
|
|
return s.userStore.UpdateUser(ctx, newUser)
|
|
}
|
|
|
|
// func (s *Service) UpdateUserSuspend(ctx context.Context, id int64, status bool) error {
|
|
// // update user
|
|
// return s.userStore.UpdateUserSuspend(ctx, id, status)
|
|
// }
|
|
func (s *Service) GetUserByID(ctx context.Context, id int64) (domain.User, error) {
|
|
return s.userStore.GetUserByID(ctx, id)
|
|
}
|