add avatar update for donate pages

This commit is contained in:
harold 2025-04-07 18:30:12 +05:00
parent 8b0f0e7648
commit 7f7d59f43b
5 changed files with 35 additions and 0 deletions

View File

@ -240,6 +240,7 @@ func GetOuterDonatePage(donatService model.DonatService) echo.HandlerFunc {
// @Param metadata formData model.UpdateDonatPage false "Update fields" // @Param metadata formData model.UpdateDonatPage false "Update fields"
// @Param background formData file false "Background image" // @Param background formData file false "Background image"
// @Param head_img formData file false "Head image" // @Param head_img formData file false "Head image"
// @Param avatar formData file false "Avatar image"
// @Success 200 {string} string "Donat page updated successfully" // @Success 200 {string} string "Donat page updated successfully"
// @Failure 400 {object} echo.HTTPError "Bad request" // @Failure 400 {object} echo.HTTPError "Bad request"
// @Failure 401 {object} echo.HTTPError "Unauthorized or expired token" // @Failure 401 {object} echo.HTTPError "Unauthorized or expired token"
@ -280,6 +281,15 @@ func UpdateDonatePage(donatService model.DonatService, fileService model.FileSer
} }
} }
avatarFile, err := request.FormFile("avatar")
if err != nil {
headImgFile = &multipart.FileHeader{
Filename: "",
Size: 0,
Header: nil,
}
}
// Передаем файлы только если они были переданы // Передаем файлы только если они были переданы
err = donatService.UpdateDonatePage( err = donatService.UpdateDonatePage(
ctx, ctx,
@ -287,6 +297,7 @@ func UpdateDonatePage(donatService model.DonatService, fileService model.FileSer
body, body,
*bgFile, *bgFile,
*headImgFile, *headImgFile,
*avatarFile,
) )
if err != nil { if err != nil {
return echo.NewHTTPError(http.StatusInternalServerError, custom_response.InternalError) return echo.NewHTTPError(http.StatusInternalServerError, custom_response.InternalError)

View File

@ -88,6 +88,7 @@ type DonatService interface {
updateModel UpdateDonatPage, updateModel UpdateDonatPage,
background multipart.FileHeader, background multipart.FileHeader,
headImg multipart.FileHeader, headImg multipart.FileHeader,
avatar multipart.FileHeader,
) error ) error
GetVoiceSettings(ctx context.Context, streamerID int) (VoiceSettingsResponse, error) GetVoiceSettings(ctx context.Context, streamerID int) (VoiceSettingsResponse, error)
UpdateVoiceSettings(ctx context.Context, streamerID int, updateModel UpdateVoiceSettings) error UpdateVoiceSettings(ctx context.Context, streamerID int, updateModel UpdateVoiceSettings) error
@ -142,6 +143,7 @@ type DonatRepo interface {
streamerID int, streamerID int,
backgroundFileID *string, backgroundFileID *string,
headImgFileID *string, headImgFileID *string,
avatarFileID *string,
description *string, description *string,
textAfterDonation *string, textAfterDonation *string,
profileAvatar *bool, profileAvatar *bool,

View File

@ -271,6 +271,7 @@ UPDATE donate_pages
SET SET
background_img = COALESCE(@background_img, background_img), background_img = COALESCE(@background_img, background_img),
head_img = COALESCE(@head_img, head_img), head_img = COALESCE(@head_img, head_img),
avatar = COALESCE(@avatar, avatar),
description = COALESCE(@description, description), description = COALESCE(@description, description),
text_after_donat = COALESCE(@text_after_donation, text_after_donat) text_after_donat = COALESCE(@text_after_donation, text_after_donat)
WHERE streamer_id = @streamer_id WHERE streamer_id = @streamer_id

View File

@ -197,6 +197,7 @@ func (repoDonat *RepoDonat) UpdateDonatePage(
streamerID int, streamerID int,
backgroundFileID *string, backgroundFileID *string,
headImgFileID *string, headImgFileID *string,
avatarFileID *string,
description *string, description *string,
textAfterDonation *string, textAfterDonation *string,
profileAvatar *bool, profileAvatar *bool,
@ -212,6 +213,9 @@ func (repoDonat *RepoDonat) UpdateDonatePage(
if headImgFileID != nil { if headImgFileID != nil {
args["head_img"] = *headImgFileID args["head_img"] = *headImgFileID
} }
if avatarFileID != nil {
args["avatar"] = *avatarFileID
}
if description != nil { if description != nil {
args["description"] = *description args["description"] = *description
} }

View File

@ -261,9 +261,11 @@ func (donatService *ServiceDonat) UpdateDonatePage(
updateModel model.UpdateDonatPage, updateModel model.UpdateDonatPage,
background multipart.FileHeader, background multipart.FileHeader,
headImg multipart.FileHeader, headImg multipart.FileHeader,
avatar multipart.FileHeader,
) error { ) error {
var backgroundFileID *string var backgroundFileID *string
var headImgFileID *string var headImgFileID *string
var avatarFileID *string
if background.Size > 0 { if background.Size > 0 {
fileID, err := donatService.fileService.AddNewFile( fileID, err := donatService.fileService.AddNewFile(
@ -293,11 +295,26 @@ func (donatService *ServiceDonat) UpdateDonatePage(
headImgFileID = &fileID headImgFileID = &fileID
} }
if avatar.Size > 0 {
fileID, err := donatService.fileService.AddNewFile(
ctx,
avatar,
streamerID,
"donat_page",
)
if err != nil {
slog.Error(err.Error())
return err
}
avatarFileID = &fileID
}
err := donatService.donatRepo.UpdateDonatePage( err := donatService.donatRepo.UpdateDonatePage(
ctx, ctx,
streamerID, streamerID,
backgroundFileID, backgroundFileID,
headImgFileID, headImgFileID,
avatarFileID,
updateModel.Description, updateModel.Description,
updateModel.TextAfterDonat, updateModel.TextAfterDonat,
updateModel.ProfileAvatar, updateModel.ProfileAvatar,