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