server

package
v0.0.0-...-910bef7 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2024 License: GPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrorAlbumAlreadyExists = "album already exists"
	ErrorAlbumNotFound      = "album not found"
)
View Source
const (
	ContextUserIDKEY   = "UserID"
	ContextDeviceIDKEY = "DeviceID"
)
View Source
const (
	MusicNotFound       = "music not found"
	MusicExistInLibrary = "music already exists in your library"
)
View Source
const (
	PlaylistExist    = "playlist exist"
	PlaylistNotFound = "playlist not found"
)
View Source
const (
	InternalServerError = "InternalServerError"
	NoPermission        = "no permission"
)
View Source
const (
	UsernameAlreadyExists      = "Username already exists"
	UserDoesNotExist           = "User does not exist"
	PasswordVerificationFailed = "Password verification failed"
)
View Source
const (
	DeviceNotFound = "device not found"
)
View Source
const (
	ImageNotFound = "image not found"
)
View Source
const (
	InvalidDeviceID = "invalid device id"
)
View Source
const (
	NameIsEmpty = "name is empty"
)
View Source
const (
	Unauthorized = "Unauthorized"
)

Variables

View Source
var (
	ErrNoAuthorizationHeader      = &ValidationError{Message: "no authorization header"}
	ErrTokenAuthenticationFailure = &ValidationError{Message: "token authentication failure"}
	ErrTokenInvalid               = &ValidationError{Message: "invalid authorization"}
	ErrUnauthorized               = &ValidationError{Message: "unauthorized"}
)

Functions

func BuildAlbumQuery

func BuildAlbumQuery(client *ent.Client) *ent.AlbumsQuery

func BuildMusicQuery

func BuildMusicQuery(client *ent.Client) *ent.MusicsQuery

func ErrorBadRequest

func ErrorBadRequest(c *gin.Context, message string)

func ErrorConflict

func ErrorConflict(c *gin.Context, message string)

func ErrorInternalServerError

func ErrorInternalServerError(c *gin.Context)

func ErrorJSONResponse

func ErrorJSONResponse(c *gin.Context, status int, message string)

func ErrorNoPermission

func ErrorNoPermission(c *gin.Context, message string)

func ErrorNotFound

func ErrorNotFound(c *gin.Context, message string)

func ErrorUnauthorized

func ErrorUnauthorized(c *gin.Context, message string)

func FMTUsername

func FMTUsername(sub, iss string) string

func Success

func Success(c *gin.Context, resp any)

Types

type AddFileResponse

type AddFileResponse struct {
	Name string `json:"name"`
	Hash string `json:"hash"`
	Size string `json:"size"`
}

type AddImageForm

type AddImageForm struct {
	Hash   string `form:"hash" json:"hash" binding:"required"`
	Name   string `form:"name" json:"name" binding:"required"`
	Size   string `form:"size" json:"size" binding:"required"`
	Height int32  `form:"height" json:"height" binding:"required"`
	Width  int32  `form:"width" json:"width" binding:"required"`
}

type AddMusicsForm

type AddMusicsForm struct {
	Hash string `form:"hash" json:"hash" binding:"required"`
	Name string `form:"name" json:"name" binding:"required"`
	Size string `form:"size" json:"size" binding:"required"`
}

type AddMusicsToAlbumForm

type AddMusicsToAlbumForm struct {
	MusicIDs []string `form:"music_ids" json:"music_ids" binding:"required,gt=0,dive,min=1,numeric,excludes= "`
}

type AddMusicsToAlbumParams

type AddMusicsToAlbumParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type AddMusicsToPlaylistForm

type AddMusicsToPlaylistForm struct {
	MusicIDs []string `form:"music_ids" json:"music_ids" binding:"required,gt=0,dive,min=1"`
}

type AddMusicsToPlaylistParams

type AddMusicsToPlaylistParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type Album

type Album struct {
	ID          string    `json:"id"`
	Title       string    `json:"title"`
	Description string    `json:"description"`
	Date        string    `json:"date"`
	Image       *Image    `json:"image"`
	Musics      []*Music  `json:"musics"`
	Artists     []*Artist `json:"artists"`
}

func AlbumFromEnt

func AlbumFromEnt(a *ent.Albums) *Album

type Albums

type Albums interface {
	CreateAlbum() error
	GetAlbums() error
	GetAlbum() error
	EditAlbum() error
	AddMusicsToAlbum() error
	RemoveMusicsFromAlbum() error
	DelAlbum() error
}

type Artist

type Artist struct {
	ID   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
}

func FMTArtist

func FMTArtist(a *ent.Artists) *Artist

type Artists

type Artists interface {
	SearchArtists() error
	CreateArtist() error
}

type Client

type Client interface {
	Post(path string) (*resty.Response, error)
}

type CreateAlbumForm

type CreateAlbumForm struct {
	Title       string   `form:"title" json:"title" binding:"required,startsnotwith= ,endsnotwith= "`
	Date        string   `form:"date" json:"date" binding:"required,min=4,numeric"`
	ArtistIDs   []string `form:"artist_ids" json:"artist_ids" binding:"required,gt=0,dive,min=1,numeric,excludes= "`
	CoverID     string   `form:"cover_id" json:"cover_id" binding:"required,numeric"`
	Description string   `form:"description" json:"description" binding:"omitempty"`
}

type CreateArtistForm

type CreateArtistForm struct {
	Name string `form:"name" json:"name" binding:"required,startsnotwith= ,endsnotwith= "`
}

type CreatePlaylistForm

type CreatePlaylistForm struct {
	Name    string `form:"name" json:"name" binding:"required,max=32"`
	Private bool   `form:"private" json:"private"`
}

type CreateUserForm

type CreateUserForm struct {
	Username string `form:"username" json:"username" binding:"required,min=4,max=32"`
	Password string `form:"password" json:"password" binding:"required,min=6,max=32"`
}

CreateUserForm create user form.

type DelAlbumParams

type DelAlbumParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type DelMusicParams

type DelMusicParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type DelPlaylistParams

type DelPlaylistParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type Device

type Device struct {
	ID         string    `json:"id"`
	CreateTime time.Time `json:"create_time"`
	UpdateTime time.Time `json:"update_time"`
	IP         string    `json:"ip"`
	Device     string    `json:"device"`
}

type Devices

type Devices interface {
	ListDevices() error
	DeleteDevice() error
}

type EditAlbumForm

type EditAlbumForm struct {
	Title           string   `form:"title" json:"title" binding:"omitempty,min=1,max=255,startsnotwith= ,endsnotwith= "`
	Date            string   `form:"date" json:"date" binding:"omitempty,min=4,numeric"`
	CoverID         string   `form:"cover_id" json:"cover_id" binding:"omitempty,numeric"`
	AddArtistIDs    []string `form:"add_artist_ids" json:"add_artist_ids" binding:"omitempty,gt=0,dive,min=1,numeric,excludes= "`
	RemoveArtistIDs []string `form:"remove_artist_ids" json:"remove_artist_ids" binding:"omitempty,gt=0,dive,min=1,numeric,excludes= "`
	Description     string   `form:"description" json:"description" binding:"omitempty"`
}

type EditAlbumParams

type EditAlbumParams struct {
	ID uint64 `uri:"id" binding:"required"`
}

type EditMusicForm

type EditMusicForm struct {
	Name            string   `form:"name" json:"name"`
	Description     string   `form:"description" json:"description"`
	AddArtistIDs    []string `form:"add_artist_ids" json:"add_artist_ids" binding:"omitempty,gt=0,dive,min=1"`
	RemoveArtistIDs []string `form:"remove_artist_ids" json:"remove_artist_ids" binding:"omitempty,gt=0,dive,min=1"`
}

func (*EditMusicForm) IsEmpty

func (f *EditMusicForm) IsEmpty() bool

type EditMusicParams

type EditMusicParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type EditPlaylistForm

type EditPlaylistForm struct {
	Name        string `form:"name" json:"name" binding:"max=32"`
	Description string `form:"description" json:"description" binding:"max=500"`
	CoverID     string `form:"cover_id" json:"cover_id"`
	Private     bool   `form:"private" json:"private"`
}

type EditPlaylistParams

type EditPlaylistParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type ErrorResponse

type ErrorResponse struct {
	Code  int    `json:"code"`
	Error string `json:"error"`
}

type ExistsMusic

type ExistsMusic struct {
	Name  string  `json:"name"`
	Music []Music `json:"music"`
}

type File

type File struct {
	ID   string `json:"id"`
	Hash string `json:"hash"`
	Name string `json:"name"`
	Size string `json:"size"`
}

func FMTFile

func FMTFile(f *ent.Files) *File

type GetAlbumParams

type GetAlbumParams struct {
	ID uint64 `uri:"id" binding:"required"`
}

type GetMusicParams

type GetMusicParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type GetMusicsQuery

type GetMusicsQuery struct {
	Name string `form:"name"`
}

type GetPlaylistParams

type GetPlaylistParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type IPFS

type IPFS interface {
	IPFSAddFiles() error
}

type Image

type Image struct {
	ID     string `json:"id"`
	Width  int32  `json:"width"`
	Height int32  `json:"height"`
	File   *File  `json:"file"`
}

func FMTImage

func FMTImage(i *ent.Images) *Image

type Images

type Images interface {
	AddImage() error
}

type Localhost

type Localhost struct {
	BaseURL string
}

func (*Localhost) Post

func (l *Localhost) Post(path string) (*resty.Response, error)

type LoginForm

type LoginForm struct {
	Username string `form:"username" json:"username" binding:"required,min=4,max=32"`
	Password string `form:"password" json:"password" binding:"required,min=6,max=32"`
}

LoginForm login form.

type Music

type Music struct {
	ID          string    `json:"id,omitempty"`
	CreateTime  time.Time `json:"create_time"`
	UpdateTime  time.Time `json:"update_time"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	File        *File     `json:"file"`
	Artists     []*Artist `json:"artists"`
	Albums      []*Album  `json:"albums"`
}

func FMTMusic

func FMTMusic(m *ent.Musics) *Music

type Musics

type Musics interface {
	AddMusics() error
	SaveMusic() error
	ListMusics() error
	GetMusic() error
	EditMusic() error
	DelMusic() error
}

type Playlist

type Playlist struct {
	ID          string   `json:"id"`
	Name        string   `json:"name"`
	Description string   `json:"description"`
	Private     bool     `json:"private"`
	Image       *Image   `json:"image"`
	Musics      []*Music `json:"musics"`
}

func FMTPlaylist

func FMTPlaylist(p *ent.Playlists) *Playlist

type Playlists

type Playlists interface {
	CreatePlaylist() error
	ListPlaylists() error
	EditPlaylist() error
	RemoveMusicsFromPlaylist() error
	AddMusicsToPlaylist() error
	DelPlaylist() error
}

type RemoveMusicsFromAlbumForm

type RemoveMusicsFromAlbumForm struct {
	MusicIDs []string `form:"music_ids" json:"music_ids" binding:"required,gt=0,dive,min=1,numeric,excludes= "`
}

type RemoveMusicsFromAlbumParams

type RemoveMusicsFromAlbumParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type RemoveMusicsFromPlaylistForm

type RemoveMusicsFromPlaylistForm struct {
	MusicIDs []string `form:"music_ids" json:"music_ids" binding:"required,gt=0,dive,min=1"`
}

type RemoveMusicsFromPlaylistParams

type RemoveMusicsFromPlaylistParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type RemovePlaylistImageParams

type RemovePlaylistImageParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type SaveMusicParams

type SaveMusicParams struct {
	ID uint64 `uri:"id" binding:"required,numeric"`
}

type SearchArtistsQuery

type SearchArtistsQuery struct {
	Name string `form:"name"`
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(ctx *gin.Context, client *ent.Client) *Server

func (*Server) AddImage

func (s *Server) AddImage() error

func (*Server) AddMusics

func (s *Server) AddMusics() error

func (*Server) AddMusicsToAlbum

func (s *Server) AddMusicsToAlbum() error

func (*Server) AddMusicsToPlaylist

func (s *Server) AddMusicsToPlaylist() error

func (*Server) CreateAlbum

func (s *Server) CreateAlbum() error

func (*Server) CreateArtist

func (s *Server) CreateArtist() error

func (*Server) CreatePlaylist

func (s *Server) CreatePlaylist() error

func (*Server) CreateUser

func (s *Server) CreateUser() error

func (*Server) DelAlbum

func (s *Server) DelAlbum() error

func (*Server) DelMusic

func (s *Server) DelMusic() error

func (*Server) DelPlaylist

func (s *Server) DelPlaylist() error

func (*Server) DeleteDevice

func (s *Server) DeleteDevice() error

func (*Server) EditAlbum

func (s *Server) EditAlbum() error

func (*Server) EditMusic

func (s *Server) EditMusic() error

func (*Server) EditPlaylist

func (s *Server) EditPlaylist() error

func (*Server) GetAlbum

func (s *Server) GetAlbum() error

func (*Server) GetAlbums

func (s *Server) GetAlbums() error

func (*Server) GetMusic

func (s *Server) GetMusic() error

func (*Server) GetPlaylist

func (s *Server) GetPlaylist() error

func (*Server) GetUserID

func (s *Server) GetUserID() uint64

func (*Server) IPFSAddFiles

func (s *Server) IPFSAddFiles() error

func (*Server) ListDevices

func (s *Server) ListDevices() error

func (*Server) ListMusics

func (s *Server) ListMusics() error

func (*Server) ListPlaylists

func (s *Server) ListPlaylists() error

func (*Server) Login

func (s *Server) Login() error

func (*Server) Ok

func (s *Server) Ok()

func (*Server) RemoveMusicsFromAlbum

func (s *Server) RemoveMusicsFromAlbum() error

func (*Server) RemoveMusicsFromPlaylist

func (s *Server) RemoveMusicsFromPlaylist() error

func (*Server) RemovePlaylistImage

func (s *Server) RemovePlaylistImage() error

func (*Server) SaveMusic

func (s *Server) SaveMusic() error

func (*Server) SearchArtists

func (s *Server) SearchArtists() error

func (*Server) ValidateJWT

func (s *Server) ValidateJWT() error

type Users

type Users interface {
	Login() error
	CreateUser() error
}

type ValidationError

type ValidationError struct {
	Message string
}

func (*ValidationError) Error

func (e *ValidationError) Error() string

type Web3Storage

type Web3Storage struct {
	BaseURL string
}

func (*Web3Storage) Post

func (w *Web3Storage) Post(path string) (*resty.Response, error)

Jump to

Keyboard shortcuts

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