From 120761ecfd89ae3f4b979f5eac8b579120aa4d50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Dulai?= Date: Tue, 28 Jul 2026 22:15:29 +0200 Subject: [PATCH] Documentation --- exec/delete.go | 23 +++++++++++++++++++++-- exec/update.go | 23 +++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/exec/delete.go b/exec/delete.go index 9bae265..3f1ac99 100644 --- a/exec/delete.go +++ b/exec/delete.go @@ -10,11 +10,21 @@ import ( log "gitlab.com/gdulai/simpleloglvl" ) +// Delete represents a delete operation. type Delete[T any] struct { - target schema.Table - toDelete []T + target schema.Table // The table from which records will be deleted. + toDelete []T // A slice of model instances to be deleted. } +// NewDelete creates a new instance of Delete. +// +// Parameters: +// - orm: The ORM instance that manages the database connection and schema +// - toDelete: A slice of model instances to delete +// +// Returns: +// - Delete[T]: A new Delete operation instance +// - error: An error if the table could not be found in the schema cache func NewDelete[T any](orm *simpleorm.ORM, toDelete []T) (Delete[T], error) { table, ok := orm.Cache().Get(reflect.TypeFor[T]().Name()) if !ok { @@ -24,10 +34,19 @@ func NewDelete[T any](orm *simpleorm.ORM, toDelete []T) (Delete[T], error) { return Delete[T]{target: *table, toDelete: toDelete}, nil } +// Execute executes the delete operation. func (d *Delete[T]) Execute(conn *simpleorm.DBConnection) error { return d.execute(conn, nil) } +// execute constructs and executes the DELETE SQL statement. +// +// Parameters: +// - conn: The database connection to use for executing the query +// - tx: Optional transaction to use instead of a connection +// +// Returns: +// - error: An error if the operation fails func (d *Delete[T]) execute(conn *simpleorm.DBConnection, tx *sql.Tx) error { count := len(d.toDelete) dml, err := d.target.GetDeleteDML(count) diff --git a/exec/update.go b/exec/update.go index 9bc1f1a..6e77ffa 100644 --- a/exec/update.go +++ b/exec/update.go @@ -10,11 +10,21 @@ import ( log "gitlab.com/gdulai/simpleloglvl" ) +// Update represents an update operation. type Update[T any] struct { - target schema.Table - toUpdate T + target schema.Table // The table where records will be updated. + toUpdate T // A model instance with the new values. } +// NewUpdate creates a new instance of Update. +// +// Parameters: +// - orm: The ORM instance that manages the database connection and schema +// - toUpdate: A model instance with new values +// +// Returns: +// - Update[T]: A new Update operation instance +// - error: An error if the table could not be found in the schema cache func NewUpdate[T any](orm *simpleorm.ORM, toUpdate T) (Update[T], error) { table, ok := orm.Cache().Get(reflect.TypeFor[T]().Name()) if !ok { @@ -24,10 +34,19 @@ func NewUpdate[T any](orm *simpleorm.ORM, toUpdate T) (Update[T], error) { return Update[T]{target: *table, toUpdate: toUpdate}, nil } +// Execute executes the update operation. func (u Update[T]) Execute(conn *simpleorm.DBConnection) error { return u.execute(conn, nil) } +// execute constructs and executes the UPDATE SQL statement. +// +// Parameters: +// - conn: The database connection to use for executing the query +// - tx: Optional transaction to use instead of a connection +// +// Returns: +// - error: An error if the operation fails func (u Update[T]) execute(conn *simpleorm.DBConnection, tx *sql.Tx) error { dml, err := u.target.GetUpdateDML() if err != nil {