35 lines
903 B
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
|
|
}
|