fix: remove 500 error responses from upload endpoints; fix: return validation error strings instead of error lists; fix: handle invalid avatar upload IDs with 400 Bad Request response; fix: add missing S3Controller to controller initialization; fix: change avatar_upload_id to string type and update validation rules; chore: add license header to smtp.go; refactor: replace manual proxy implementation with httputil.ReverseProxy; fix: inject S3Service dependency into ProfileService; fix: set color and color_grad fields during profile update; fix: correct DTO mapping for profile and settings; fix: check object existence before copying in SaveUpload; fix: adjust profile DTO mapping function for proper pointer handling
47 lines
1.8 KiB
Go
47 lines
1.8 KiB
Go
// Copyright (c) 2025 Nikolai Papin
|
|
//
|
|
// This file is part of Easywish
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
|
|
// the GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
package dto
|
|
|
|
type ProfileDto struct {
|
|
Name string `json:"name"`
|
|
Bio string `json:"bio"`
|
|
AvatarUrl *string `json:"avatar_url"`
|
|
Birthday int64 `json:"birthday"`
|
|
Color string `json:"color"`
|
|
ColorGrad string `json:"color_grad"`
|
|
}
|
|
|
|
type NewProfileDto struct {
|
|
Name string `json:"name" binding:"required" validate:"name"`
|
|
Bio string `json:"bio" validate:"bio"`
|
|
AvatarUploadID string `json:"avatar_upload_id" validate:"omitempty,upload_id=avatar"`
|
|
Birthday int64 `json:"birthday"`
|
|
Color string `json:"color" validate:"color_hex"`
|
|
ColorGrad string `json:"color_grad" validate:"color_hex"`
|
|
}
|
|
|
|
type ProfileSettingsDto struct {
|
|
HideFulfilled bool `json:"hide_fulfilled"`
|
|
HideProfileDetails bool `json:"hide_profile_details"`
|
|
HideForUnauthenticated bool `json:"hide_for_unauthenticated"`
|
|
HideBirthday bool `json:"hide_birthday"`
|
|
HideDates bool `json:"hide_dates"`
|
|
Captcha bool `json:"captcha"`
|
|
FollowersOnlyInteraction bool `json:"followers_only_interaction"`
|
|
}
|