request

package
v0.2.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2025 License: MIT Imports: 4 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToEntitySlice

func ToEntitySlice[R Request[E], E any](requests []R) ([]*E, error)

Types

type BaseRequest

type BaseRequest[E any] struct {
	EntityInstance *E
}

func (*BaseRequest[E]) CopyToEntity

func (b *BaseRequest[E]) CopyToEntity(source any) (*E, error)

type CreateBanRequest added in v0.2.7

type CreateBanRequest struct {
	BaseRequest[entities.Ban] `json:"base_request"`
	UserID                    uint       `json:"user_id" binding:"required"`                // ID пользователя, которого банят
	Reason                    string     `json:"reason" binding:"required" gorm:"size:255"` // Причина бана
	IsPermanent               bool       `json:"is_permanent"`                              // Постоянный или нет
	UnbanDate                 *time.Time `json:"unban_date,omitempty"`                      // Если не постоянный, то дата разбана
}

func (*CreateBanRequest) ToEntity added in v0.2.7

func (r *CreateBanRequest) ToEntity() (*entities.Ban, error)

type CreateImageRequest

type CreateImageRequest struct {
	BaseRequest[entities.Image] `json:"base_request"`
	S3Key                       string    `json:"s3_key" gorm:"size:255;not null"`
	Url                         string    `json:"url" gorm:"size:512;not null"`
	UserID                      *uint     `json:"user_id" gorm:"index"`
	Size                        int       `json:"size"`
	MimeType                    string    `json:"mime_type" gorm:"size:50"`
	ExpiresAt                   time.Time `json:"expires_at"`
}

func (*CreateImageRequest) ToEntity

func (r *CreateImageRequest) ToEntity() (*entities.Image, error)

type CreateRoleRequest

type CreateRoleRequest struct {
	BaseRequest[entities.Role]
	Name        string `json:"name" binding:"required"`
	Description string `json:"description" binding:"required"`
}

func (*CreateRoleRequest) ToEntity

func (r *CreateRoleRequest) ToEntity() (*entities.Role, error)

type CreateUserRequest

type CreateUserRequest struct {
	BaseRequest[entities.User]
	Username  string `json:"username" binding:"required"`
	Email     string `json:"email" binding:"required,email"`
	Password  string `json:"password" binding:"required,min=8"`
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
}

func (*CreateUserRequest) ToEntity

func (r *CreateUserRequest) ToEntity() (*entities.User, error)

type Request

type Request[E any] interface {
	ToEntity() (*E, error)
}

type UpdateBanRequest added in v0.2.7

type UpdateBanRequest struct {
	BaseRequest[entities.Ban] `json:"base_request"`

	ID          uint       `json:"id" binding:"required"`  // ID бана
	Reason      *string    `json:"reason,omitempty"`       // Можно изменить причину
	IsPermanent *bool      `json:"is_permanent,omitempty"` // Изменить тип бана
	UnbanDate   *time.Time `json:"unban_date,omitempty"`   // Обновить дату разбана
	IsActive    *bool      `json:"is_active,omitempty"`    // Деактивация/активация бана
}

func (*UpdateBanRequest) ToEntity added in v0.2.7

func (r *UpdateBanRequest) ToEntity() (*entities.Ban, error)

type UpdateRoleRequest

type UpdateRoleRequest struct {
	BaseRequest[entities.Role]
	Description string `json:"description"`
}

func (*UpdateRoleRequest) ToEntity

func (r *UpdateRoleRequest) ToEntity() (*entities.Role, error)

type UpdateUserRequest

type UpdateUserRequest struct {
	BaseRequest[entities.User]
	FirstName *string `json:"first_name,omitempty"`
	LastName  *string `json:"last_name,omitempty"`
}

func (*UpdateUserRequest) ToEntity

func (r *UpdateUserRequest) ToEntity() (*entities.User, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL