github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/abstract/deletable/store/sql_db/sql_db.go (about)

     1  package sql_db
     2  
     3  import (
     4  	"github.com/jmoiron/sqlx"
     5  	"github.com/k0marov/go-socnet/core/abstract/table_name"
     6  	"github.com/k0marov/go-socnet/core/general/core_err"
     7  )
     8  
     9  type SqlDB struct {
    10  	sql             *sqlx.DB
    11  	safeTargetTable string
    12  }
    13  
    14  func NewSqlDB(db *sqlx.DB, tableName table_name.TableName) (*SqlDB, error) {
    15  	targetTable, err := tableName.Value()
    16  	if err != nil {
    17  		return nil, core_err.Rethrow("getting target table name", err)
    18  	}
    19  	return &SqlDB{sql: db, safeTargetTable: targetTable}, nil
    20  }
    21  
    22  func (db *SqlDB) Delete(targetId string) error {
    23  	_, err := db.sql.Exec(`
    24  		DELETE FROM `+db.safeTargetTable+` WHERE id = ?
    25      `, targetId)
    26  	if err != nil {
    27  		return core_err.Rethrow("deleting a Deletable target", err)
    28  	}
    29  	return nil
    30  }