Files
terminal/server/api/snippet.go
T

131 lines
2.8 KiB
Go

package api
import (
"context"
"next-terminal/server/common/maps"
"next-terminal/server/model"
"next-terminal/server/repository"
"next-terminal/server/utils"
"strconv"
"github.com/labstack/echo/v4"
)
type SnippetApi struct{}
func (api SnippetApi) AllEndpoint(c echo.Context) error {
items, err := repository.SnippetRepository.FindAll(context.TODO())
if err != nil {
return err
}
return Success(c, items)
}
func (api SnippetApi) PagingEndpoint(c echo.Context) error {
pageIndex := 1
pageSize := 10
if pi := c.QueryParam("pageIndex"); pi != "" {
if p, err := strconv.Atoi(pi); err == nil && p > 0 {
pageIndex = p
}
}
if ps := c.QueryParam("pageSize"); ps != "" {
if p, err := strconv.Atoi(ps); err == nil && p > 0 {
pageSize = p
}
}
name := c.QueryParam("name")
items, total, err := repository.SnippetRepository.FindPage(context.TODO(), pageIndex, pageSize, name)
if err != nil {
return err
}
return Success(c, maps.Map{
"items": items,
"total": total,
})
}
func (api SnippetApi) CreateEndpoint(c echo.Context) error {
var item model.Snippet
if err := c.Bind(&item); err != nil {
return err
}
account, _ := GetCurrentAccount(c)
item.ID = utils.LongUUID()
item.CreatedBy = account.ID
item.UpdatedBy = account.ID
if item.Visibility == "" {
item.Visibility = "private"
}
if err := repository.SnippetRepository.Create(context.TODO(), &item); err != nil {
return err
}
return Success(c, item)
}
func (api SnippetApi) UpdateEndpoint(c echo.Context) error {
id := c.Param("id")
var item model.Snippet
if err := c.Bind(&item); err != nil {
return err
}
account, _ := GetCurrentAccount(c)
item.ID = id
item.UpdatedBy = account.ID
if err := repository.SnippetRepository.UpdateById(context.TODO(), &item, id); err != nil {
return err
}
return Success(c, item)
}
func (api SnippetApi) DeleteEndpoint(c echo.Context) error {
id := c.Param("id")
if err := repository.SnippetRepository.DeleteById(context.TODO(), id); err != nil {
return err
}
return Success(c, nil)
}
func (api SnippetApi) GetEndpoint(c echo.Context) error {
id := c.Param("id")
item, err := repository.SnippetRepository.FindById(context.TODO(), id)
if err != nil {
return err
}
return Success(c, item)
}
type SnippetUserApi struct{}
func (api SnippetUserApi) AllEndpoint(c echo.Context) error {
account, _ := GetCurrentAccount(c)
items, err := repository.SnippetRepository.FindByUserId(context.TODO(), account.ID)
if err != nil {
return err
}
return Success(c, items)
}
func (api SnippetUserApi) PagingEndpoint(c echo.Context) error {
return api.AllEndpoint(c)
}
func (api SnippetUserApi) GetEndpoint(c echo.Context) error {
id := c.Param("id")
item, err := repository.SnippetRepository.FindById(context.TODO(), id)
if err != nil {
return err
}
return Success(c, item)
}