MiniappGoService/internal/domains/profile/service/updateUser.go

35 lines
903 B
Go

package profileService
import (
"errors"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/types"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/application/utils"
)
func (t *service) UpdateUser(user *types.User) error {
if !user.ActiveStatus.Valid() {
return errors.New("invalid active status")
} else if user.SalaryRange != nil && !user.SalaryRange.Valid() {
return errors.New("invalid salary range")
} else if user.WorkFormat != nil && !user.WorkFormat.Valid() {
return errors.New("invalid work format")
} else if !utils.ValidateWorkExperience(user.WorkExperience) {
return errors.New("invalid work experience")
}
if err := t.profileRepository.UpdateUser(user); err != nil {
return err
}
if !utils.CheckProfileCompletion(user) {
return nil
}
if err := t.sendUserData(user); err != nil {
return err
}
return nil
}