fix(delete): update delete operations to return affected rows for cabinets, rooms, and warehouses

This commit is contained in:
Tran Anh Tuan
2026-05-08 15:54:28 +07:00
parent 58cfe890a1
commit 4382c53aac
15 changed files with 75 additions and 36 deletions

View File

@@ -24,6 +24,6 @@ SET name = CASE WHEN sqlc.arg(name) = '' THEN name ELSE sqlc.arg(name) END,
WHERE id = sqlc.arg(id)
RETURNING *;
-- name: DeleteCabinet :exec
-- name: DeleteCabinet :execrows
DELETE FROM cabinets
WHERE id = sqlc.arg(id);

View File

@@ -21,6 +21,6 @@ SET name = sqlc.arg(name),
WHERE id = sqlc.arg(id)
RETURNING *;
-- name: DeleteRole :exec
-- name: DeleteRole :execrows
DELETE FROM roles
WHERE id = sqlc.arg(id);

View File

@@ -24,6 +24,6 @@ SET name = CASE WHEN sqlc.arg(name) = '' THEN name ELSE sqlc.arg(name) END,
WHERE id = sqlc.arg(id)
RETURNING *;
-- name: DeleteRoom :exec
-- name: DeleteRoom :execrows
DELETE FROM rooms
WHERE id = sqlc.arg(id);

View File

@@ -25,6 +25,6 @@ SET name = CASE WHEN sqlc.arg(name) = '' THEN name ELSE sqlc.arg(name) END,
WHERE id = sqlc.arg(id)
RETURNING *;
-- name: DeleteWarehouse :exec
-- name: DeleteWarehouse :execrows
DELETE FROM warehouses
WHERE id = sqlc.arg(id);

View File

@@ -43,6 +43,10 @@ func UpdateCabinet(ctx context.Context, queries *db.Queries, body models.Cabinet
return *mapper.ToDomainCabinet(result), nil
}
func DeleteCabinet(ctx context.Context, queries *db.Queries, id int64) error {
return queries.DeleteCabinet(ctx, id)
func DeleteCabinet(ctx context.Context, queries *db.Queries, id int64) (rowAffected int64, err error) {
rowsAffected, err := queries.DeleteCabinet(ctx, id)
if err != nil {
return rowAffected, err
}
return rowsAffected, nil
}

View File

@@ -43,6 +43,10 @@ func UpdateRoom(ctx context.Context, queries *db.Queries, body models.Room) (mod
return *mapper.ToDomainRoom(result), nil
}
func DeleteRoom(ctx context.Context, queries *db.Queries, id int64) error {
return queries.DeleteRoom(ctx, id)
func DeleteRoom(ctx context.Context, queries *db.Queries, id int64) (int64, error) {
rowsAffected, err := queries.DeleteRoom(ctx, id)
if err != nil {
return rowsAffected, err
}
return rowsAffected, nil
}

View File

@@ -43,6 +43,10 @@ func UpdateWarehouse(ctx context.Context, queries *db.Queries, body models.Wareh
return *mapper.ToDomainWarehouse(result), nil
}
func DeleteWarehouse(ctx context.Context, queries *db.Queries, id int64) error {
return queries.DeleteWarehouse(ctx, id)
func DeleteWarehouse(ctx context.Context, queries *db.Queries, id int64) (int64, error) {
rowsAffected, err := queries.DeleteWarehouse(ctx, id)
if err != nil {
return rowsAffected, err
}
return rowsAffected, nil
}

View File

@@ -171,11 +171,16 @@ func CabinetDelete(c *gin.Context) error {
response.BadRequestError(c, http.StatusBadRequest, "Invalid ID")
return nil
}
err = repositories.DeleteCabinet(c.Request.Context(), global.Queries, id)
rowsAffected, err := repositories.DeleteCabinet(c.Request.Context(), global.Queries, id)
if err != nil {
if rowsAffected == 0 {
response.NotFoundError(c, http.StatusNotFound, "Cabinet not found")
return nil
}
response.InternalServerError(c, http.StatusInternalServerError, "Failed to delete cabinet")
return nil
}
response.Ok(c, "Đã xóa thành công", nil)
response.Ok(c, "Delete Success", nil)
return nil
}

View File

@@ -172,12 +172,16 @@ func RoomDelete(c *gin.Context) error {
response.BadRequestError(c, http.StatusBadRequest, "Invalid ID")
return nil
}
err = repositories.DeleteRoom(c.Request.Context(), global.Queries, id)
rowsAffected, err := repositories.DeleteRoom(c.Request.Context(), global.Queries, id)
if err != nil {
log.Error().Err(err).Msgf("Failed to delete room with ID: %d", id)
if rowsAffected == 0 {
response.NotFoundError(c, http.StatusNotFound, "Room not found")
return nil
}
response.InternalServerError(c, http.StatusInternalServerError, "Failed to delete room")
return nil
}
response.Ok(c, "Đã xóa thành công", nil)
response.Ok(c, "Delete Success", nil)
return nil
}

View File

@@ -13,6 +13,7 @@ import (
"wm-backend/response"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog/log"
)
// WareHouseCreate creates a new warehouse.
@@ -161,11 +162,16 @@ func WareHouseDelete(c *gin.Context) error {
response.BadRequestError(c, http.StatusBadRequest, "Invalid ID")
return nil
}
err = repositories.DeleteWarehouse(c.Request.Context(), global.Queries, id)
rowsAffected, err := repositories.DeleteWarehouse(c.Request.Context(), global.Queries, id)
if err != nil {
log.Error().Err(err).Msgf("Failed to delete warehouse with ID: %d", id)
if rowsAffected == 0 {
response.NotFoundError(c, http.StatusNotFound, "Warehouse not found")
return nil
}
response.InternalServerError(c, http.StatusInternalServerError, "Failed to delete warehouse")
return nil
}
response.Ok(c, "Đã xóa thành công", nil)
response.Ok(c, "Delete Success", nil)
return nil
}

View File

@@ -49,14 +49,17 @@ func (q *Queries) CreateCabinet(ctx context.Context, arg CreateCabinetParams) (C
return i, err
}
const deleteCabinet = `-- name: DeleteCabinet :exec
const deleteCabinet = `-- name: DeleteCabinet :execrows
DELETE FROM cabinets
WHERE id = $1
`
func (q *Queries) DeleteCabinet(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, deleteCabinet, id)
return err
func (q *Queries) DeleteCabinet(ctx context.Context, id int64) (int64, error) {
result, err := q.db.Exec(ctx, deleteCabinet, id)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const getCabinetByID = `-- name: GetCabinetByID :one

View File

@@ -18,10 +18,10 @@ type Querier interface {
CreateRoom(ctx context.Context, arg CreateRoomParams) (Room, error)
CreateUser(ctx context.Context, arg CreateUserParams) (uuid.UUID, error)
CreateWarehouse(ctx context.Context, arg CreateWarehouseParams) (Warehouse, error)
DeleteCabinet(ctx context.Context, id int64) error
DeleteRole(ctx context.Context, id uuid.UUID) error
DeleteRoom(ctx context.Context, id int64) error
DeleteWarehouse(ctx context.Context, id int64) error
DeleteCabinet(ctx context.Context, id int64) (int64, error)
DeleteRole(ctx context.Context, id uuid.UUID) (int64, error)
DeleteRoom(ctx context.Context, id int64) (int64, error)
DeleteWarehouse(ctx context.Context, id int64) (int64, error)
GetCabinetByID(ctx context.Context, id int64) (Cabinet, error)
GetRoleByID(ctx context.Context, id uuid.UUID) (Role, error)
GetRoomByID(ctx context.Context, id int64) (Room, error)

View File

@@ -40,14 +40,17 @@ func (q *Queries) CreateRole(ctx context.Context, arg CreateRoleParams) (Role, e
return i, err
}
const deleteRole = `-- name: DeleteRole :exec
const deleteRole = `-- name: DeleteRole :execrows
DELETE FROM roles
WHERE id = $1
`
func (q *Queries) DeleteRole(ctx context.Context, id uuid.UUID) error {
_, err := q.db.Exec(ctx, deleteRole, id)
return err
func (q *Queries) DeleteRole(ctx context.Context, id uuid.UUID) (int64, error) {
result, err := q.db.Exec(ctx, deleteRole, id)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const getRoleByID = `-- name: GetRoleByID :one

View File

@@ -49,14 +49,17 @@ func (q *Queries) CreateRoom(ctx context.Context, arg CreateRoomParams) (Room, e
return i, err
}
const deleteRoom = `-- name: DeleteRoom :exec
const deleteRoom = `-- name: DeleteRoom :execrows
DELETE FROM rooms
WHERE id = $1
`
func (q *Queries) DeleteRoom(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, deleteRoom, id)
return err
func (q *Queries) DeleteRoom(ctx context.Context, id int64) (int64, error) {
result, err := q.db.Exec(ctx, deleteRoom, id)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const getRoomByID = `-- name: GetRoomByID :one

View File

@@ -49,14 +49,17 @@ func (q *Queries) CreateWarehouse(ctx context.Context, arg CreateWarehouseParams
return i, err
}
const deleteWarehouse = `-- name: DeleteWarehouse :exec
const deleteWarehouse = `-- name: DeleteWarehouse :execrows
DELETE FROM warehouses
WHERE id = $1
`
func (q *Queries) DeleteWarehouse(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, deleteWarehouse, id)
return err
func (q *Queries) DeleteWarehouse(ctx context.Context, id int64) (int64, error) {
result, err := q.db.Exec(ctx, deleteWarehouse, id)
if err != nil {
return 0, err
}
return result.RowsAffected(), nil
}
const getWarehouseByID = `-- name: GetWarehouseByID :one