Update update_user_info logic in service_user
All checks were successful
Client CMS Check Build (NixCN CMS) TeamCity build finished
Backend Check Build (NixCN CMS) TeamCity build finished

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-01-29 20:34:46 +08:00
parent 83bd6c2830
commit 12a02d13dc
2 changed files with 42 additions and 42 deletions

View File

@@ -24,9 +24,9 @@ import { useUserInfo } from '@/hooks/data/useUserInfo';
const formSchema = z.object({ const formSchema = z.object({
username: z.string().min(5), username: z.string().min(5),
nickname: z.string(), nickname: z.string().min(1),
subtitle: z.string(), subtitle: z.string().min(1),
avatar: z.url(), avatar: z.url().min(1),
}); });
export function EditProfileDialog() { export function EditProfileDialog() {
const { data } = useUserInfo(); const { data } = useUserInfo();
@@ -41,7 +41,7 @@ export function EditProfileDialog() {
subtitle: user.subtitle, subtitle: user.subtitle,
}, },
validators: { validators: {
onSubmit: formSchema onBlur: formSchema,
}, },
onSubmit: async ({ onSubmit: async ({
value, value,

View File

@@ -40,50 +40,46 @@ func (self *UserServiceImpl) UpdateUserInfo(payload *UserInfoPayload) (result *U
userData.SetUsername(payload.Data.Username) userData.SetUsername(payload.Data.Username)
} }
if payload.Data.Nickname != "" { if utf8.RuneCountInString(payload.Data.Nickname) > 24 {
if utf8.RuneCountInString(payload.Data.Nickname) > 24 { execption := new(exception.Builder).
execption := new(exception.Builder). SetStatus(exception.StatusUser).
SetStatus(exception.StatusUser). SetService(exception.ServiceUser).
SetService(exception.ServiceUser). SetType(exception.TypeCommon).
SetType(exception.TypeCommon). SetOriginal(exception.CommonErrorInvalidInput)
SetOriginal(exception.CommonErrorInvalidInput)
result = &UserInfoResult{ result = &UserInfoResult{
Common: shared.CommonResult{ Common: shared.CommonResult{
HttpCode: 400, HttpCode: 400,
Exception: execption, Exception: execption,
}, },
Data: nil, Data: nil,
}
return
} }
userData.SetNickname(payload.Data.Nickname)
return
} }
userData.SetNickname(payload.Data.Nickname)
if payload.Data.Subtitle != "" { if utf8.RuneCountInString(payload.Data.Subtitle) > 32 {
if utf8.RuneCountInString(payload.Data.Subtitle) > 32 { execption := new(exception.Builder).
execption := new(exception.Builder). SetStatus(exception.StatusUser).
SetStatus(exception.StatusUser). SetService(exception.ServiceUser).
SetService(exception.ServiceUser). SetEndpoint(exception.EndpointUserServiceUpdate).
SetEndpoint(exception.EndpointUserServiceUpdate). SetType(exception.TypeCommon).
SetType(exception.TypeCommon). SetOriginal(exception.CommonErrorInvalidInput).
SetOriginal(exception.CommonErrorInvalidInput). SetError(nil).
SetError(nil). Throw(payload.Context)
Throw(payload.Context)
result = &UserInfoResult{ result = &UserInfoResult{
Common: shared.CommonResult{ Common: shared.CommonResult{
HttpCode: 400, HttpCode: 400,
Exception: execption, Exception: execption,
}, },
Data: nil, Data: nil,
}
return
} }
userData.SetSubtitle(payload.Data.Subtitle)
return
} }
userData.SetSubtitle(payload.Data.Subtitle)
if payload.Data.Avatar != "" { if payload.Data.Avatar != "" {
_, err := url.ParseRequestURI(payload.Data.Avatar) _, err := url.ParseRequestURI(payload.Data.Avatar)
@@ -108,6 +104,8 @@ func (self *UserServiceImpl) UpdateUserInfo(payload *UserInfoPayload) (result *U
return return
} }
userData.SetAvatar(payload.Data.Avatar) userData.SetAvatar(payload.Data.Avatar)
} else if payload.Data.Avatar == "" {
userData.SetAvatar("")
} }
if payload.Data.Bio != "" { if payload.Data.Bio != "" {
@@ -131,7 +129,9 @@ func (self *UserServiceImpl) UpdateUserInfo(payload *UserInfoPayload) (result *U
return return
} }
userData.Bio = payload.Data.Bio userData.SetBio(payload.Data.Bio)
} else if payload.Data.Bio == "" {
userData.SetBio("")
} }
err = userData.UpdateByUserID(payload.Context, &payload.UserId) err = userData.UpdateByUserID(payload.Context, &payload.UserId)