Feat: add delete endpoints
This commit is contained in:
@@ -2,7 +2,9 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"gitea.konchin.com/go2025/backend/middlewares"
|
||||||
"gitea.konchin.com/go2025/backend/utils"
|
"gitea.konchin.com/go2025/backend/utils"
|
||||||
"github.com/uptrace/bunrouter"
|
"github.com/uptrace/bunrouter"
|
||||||
)
|
)
|
||||||
@@ -19,6 +21,26 @@ import (
|
|||||||
func (self *Handlers) DeleteAlias(
|
func (self *Handlers) DeleteAlias(
|
||||||
w http.ResponseWriter, req bunrouter.Request,
|
w http.ResponseWriter, req bunrouter.Request,
|
||||||
) error {
|
) error {
|
||||||
// TODO
|
ctx := req.Context()
|
||||||
|
|
||||||
|
rawAliasId := req.Param("id")
|
||||||
|
aliasId, err := strconv.ParseInt(rawAliasId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return middlewares.HTTPError{
|
||||||
|
StatusCode: http.StatusBadRequest,
|
||||||
|
Message: "failed to parse aliasId",
|
||||||
|
OriginError: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = self.db.DeleteAlias(ctx, aliasId)
|
||||||
|
if err != nil {
|
||||||
|
return middlewares.HTTPError{
|
||||||
|
StatusCode: http.StatusInternalServerError,
|
||||||
|
Message: "failed to delete alias",
|
||||||
|
OriginError: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return utils.Success(w)
|
return utils.Success(w)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"gitea.konchin.com/go2025/backend/middlewares"
|
||||||
"gitea.konchin.com/go2025/backend/utils"
|
"gitea.konchin.com/go2025/backend/utils"
|
||||||
"github.com/uptrace/bunrouter"
|
"github.com/uptrace/bunrouter"
|
||||||
)
|
)
|
||||||
@@ -19,6 +21,26 @@ import (
|
|||||||
func (self *Handlers) DeleteImage(
|
func (self *Handlers) DeleteImage(
|
||||||
w http.ResponseWriter, req bunrouter.Request,
|
w http.ResponseWriter, req bunrouter.Request,
|
||||||
) error {
|
) error {
|
||||||
// TODO
|
ctx := req.Context()
|
||||||
|
|
||||||
|
rawImageId := req.Param("id")
|
||||||
|
imageId, err := strconv.ParseInt(rawImageId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return middlewares.HTTPError{
|
||||||
|
StatusCode: http.StatusBadRequest,
|
||||||
|
Message: "failed to parse imageId",
|
||||||
|
OriginError: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = self.db.DeleteImage(ctx, imageId)
|
||||||
|
if err != nil {
|
||||||
|
return middlewares.HTTPError{
|
||||||
|
StatusCode: http.StatusInternalServerError,
|
||||||
|
Message: "failed to delete image",
|
||||||
|
OriginError: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return utils.Success(w)
|
return utils.Success(w)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,3 +212,49 @@ func (self *BunDatabase) InsertImage(
|
|||||||
Exec(ctx)
|
Exec(ctx)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *BunDatabase) DeleteImage(
|
||||||
|
ctx context.Context,
|
||||||
|
imageId int64,
|
||||||
|
) error {
|
||||||
|
return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
|
||||||
|
_, err := self.db.NewDelete().
|
||||||
|
Model((*models.Image)(nil)).
|
||||||
|
Where("id = ?", imageId).
|
||||||
|
Exec(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = self.db.NewDelete().
|
||||||
|
Model((*models.AliasImage)(nil)).
|
||||||
|
Where("image_id = ?", imageId).
|
||||||
|
Exec(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *BunDatabase) DeleteAlias(
|
||||||
|
ctx context.Context,
|
||||||
|
aliasId int64,
|
||||||
|
) error {
|
||||||
|
return self.db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
|
||||||
|
_, err := self.db.NewDelete().
|
||||||
|
Model((*models.Alias)(nil)).
|
||||||
|
Where("id = ?", aliasId).
|
||||||
|
Exec(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = self.db.NewDelete().
|
||||||
|
Model((*models.AliasImage)(nil)).
|
||||||
|
Where("alias_id = ?", aliasId).
|
||||||
|
Exec(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -47,4 +47,14 @@ type Database interface {
|
|||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
image *models.Image,
|
image *models.Image,
|
||||||
) error
|
) error
|
||||||
|
|
||||||
|
DeleteImage(
|
||||||
|
ctx context.Context,
|
||||||
|
imageId int64,
|
||||||
|
) error
|
||||||
|
|
||||||
|
DeleteAlias(
|
||||||
|
ctx context.Context,
|
||||||
|
aliasId int64,
|
||||||
|
) error
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user