diff --git a/db/queries/cabinet.sql b/db/queries/cabinet.sql index aea101e..f4e601c 100644 --- a/db/queries/cabinet.sql +++ b/db/queries/cabinet.sql @@ -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); diff --git a/db/queries/roles.sql b/db/queries/roles.sql index 2a1f6a4..7047b38 100644 --- a/db/queries/roles.sql +++ b/db/queries/roles.sql @@ -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); diff --git a/db/queries/room.sql b/db/queries/room.sql index 9081e1d..56067c6 100644 --- a/db/queries/room.sql +++ b/db/queries/room.sql @@ -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); diff --git a/db/queries/warehouse.sql b/db/queries/warehouse.sql index 896a749..40dc367 100644 --- a/db/queries/warehouse.sql +++ b/db/queries/warehouse.sql @@ -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); diff --git a/internal/repositories/cabinet_repository.go b/internal/repositories/cabinet_repository.go index 4752eed..c305c75 100644 --- a/internal/repositories/cabinet_repository.go +++ b/internal/repositories/cabinet_repository.go @@ -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 } diff --git a/internal/repositories/room_repository.go b/internal/repositories/room_repository.go index 23b0390..088add8 100644 --- a/internal/repositories/room_repository.go +++ b/internal/repositories/room_repository.go @@ -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 } diff --git a/internal/repositories/warehouse_repository.go b/internal/repositories/warehouse_repository.go index f5ff59c..6f48670 100644 --- a/internal/repositories/warehouse_repository.go +++ b/internal/repositories/warehouse_repository.go @@ -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 } diff --git a/internal/services/cabinet_service.go b/internal/services/cabinet_service.go index e1446c4..442db2b 100644 --- a/internal/services/cabinet_service.go +++ b/internal/services/cabinet_service.go @@ -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 } diff --git a/internal/services/room_service.go b/internal/services/room_service.go index 223eabe..21674f7 100644 --- a/internal/services/room_service.go +++ b/internal/services/room_service.go @@ -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 } diff --git a/internal/services/warehouse_service.go b/internal/services/warehouse_service.go index d82d476..30822e4 100644 --- a/internal/services/warehouse_service.go +++ b/internal/services/warehouse_service.go @@ -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 } diff --git a/sqlc_gen/cabinet.sql.go b/sqlc_gen/cabinet.sql.go index 1f41730..acfe46e 100644 --- a/sqlc_gen/cabinet.sql.go +++ b/sqlc_gen/cabinet.sql.go @@ -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 diff --git a/sqlc_gen/querier.go b/sqlc_gen/querier.go index 5651fc6..1416f20 100644 --- a/sqlc_gen/querier.go +++ b/sqlc_gen/querier.go @@ -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) diff --git a/sqlc_gen/roles.sql.go b/sqlc_gen/roles.sql.go index abef067..3501dd8 100644 --- a/sqlc_gen/roles.sql.go +++ b/sqlc_gen/roles.sql.go @@ -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 diff --git a/sqlc_gen/room.sql.go b/sqlc_gen/room.sql.go index a411453..613d0c0 100644 --- a/sqlc_gen/room.sql.go +++ b/sqlc_gen/room.sql.go @@ -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 diff --git a/sqlc_gen/warehouse.sql.go b/sqlc_gen/warehouse.sql.go index b11a528..f462567 100644 --- a/sqlc_gen/warehouse.sql.go +++ b/sqlc_gen/warehouse.sql.go @@ -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