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 ( 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)
} }

View File

@@ -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)
} }

View File

@@ -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
})
}

View File

@@ -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
} }