Feat: add delete endpoints

This commit is contained in:
2025-12-07 22:26:55 +08:00
parent 1ce2174bdc
commit 5e7ee7cb01
4 changed files with 102 additions and 2 deletions

View File

@@ -2,7 +2,9 @@ package api
import (
"net/http"
"strconv"
"gitea.konchin.com/go2025/backend/middlewares"
"gitea.konchin.com/go2025/backend/utils"
"github.com/uptrace/bunrouter"
)
@@ -19,6 +21,26 @@ import (
func (self *Handlers) DeleteAlias(
w http.ResponseWriter, req bunrouter.Request,
) 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)
}

View File

@@ -2,7 +2,9 @@ package api
import (
"net/http"
"strconv"
"gitea.konchin.com/go2025/backend/middlewares"
"gitea.konchin.com/go2025/backend/utils"
"github.com/uptrace/bunrouter"
)
@@ -19,6 +21,26 @@ import (
func (self *Handlers) DeleteImage(
w http.ResponseWriter, req bunrouter.Request,
) 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)
}

View File

@@ -212,3 +212,49 @@ func (self *BunDatabase) InsertImage(
Exec(ctx)
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
})
}

View File

@@ -47,4 +47,14 @@ type Database interface {
ctx context.Context,
image *models.Image,
) error
DeleteImage(
ctx context.Context,
imageId int64,
) error
DeleteAlias(
ctx context.Context,
aliasId int64,
) error
}