From 2cfd1754144a82b0849220f91cc17ce47e685480 Mon Sep 17 00:00:00 2001 From: Andrey Chervyakov Date: Sat, 13 Mar 2021 02:47:51 +0600 Subject: [PATCH] Add repository method for deleting entity --- link/repository.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/link/repository.go b/link/repository.go index dbe2780..e41cdef 100644 --- a/link/repository.go +++ b/link/repository.go @@ -74,6 +74,30 @@ func (r *PgRepository) FindById(id string) (*Link, error) { return entity, nil } +func (r *PgRepository) DeleteById(id string) error { + ctx := context.Background() + tx, err := r.pool.Begin(ctx) + if err != nil { + return err + } + + sql := ` + DELETE FROM links WHERE id = $1 + ` + + _, err = tx.Exec(ctx, sql, id) + if err != nil { + _ = tx.Rollback(ctx) + return err + } + + if err = tx.Commit(ctx); err != nil { + return err + } + + return nil +} + func mapRowToEntity(r pgx.Row) (*Link, error) { var entity Link var urlStr string