initial commit

This commit is contained in:
silva guimaraes 2025-04-21 17:59:57 -03:00
commit c21f569144
37 changed files with 3956 additions and 0 deletions

75
database/box.go Normal file
View file

@ -0,0 +1,75 @@
package database
import (
"database/sql"
"foobar/model"
"time"
"github.com/google/uuid"
)
func SelectBox(boxURL model.BoxURL) (model.Box, error) {
row := instance.QueryRow(
`SELECT id, edit_code, header, private, moderation, created_at, last_updated_at
FROM box WHERE url = $1;`,
boxURL,
)
if row.Err() != nil {
return model.Box{}, row.Err()
}
var (
id uuid.UUID
edit_code string
header *model.Markdown
private bool
moderation bool
createdAt time.Time
lastUpdatedAt time.Time
)
err := row.Scan(&id, &edit_code, &header, &private, &moderation, &createdAt, &lastUpdatedAt)
if err != nil {
return model.Box{}, err
}
if header == nil {
header = new(model.Markdown)
*header = ""
}
return model.NewBox(id, boxURL, edit_code, *header, private, moderation, createdAt, lastUpdatedAt), nil
}
func UpdateHeader(tx *sql.Tx, boxId uuid.UUID, text model.Markdown) error {
result, err := tx.Exec(`UPDATE box SET header = $1 where id = $2`, text, boxId)
if err != nil {
return err
}
n, err := result.RowsAffected()
if err != nil {
return err
}
if n != 1 {
return errNoRowsAffected
}
return nil
}
func InsertBox(tx *sql.Tx, box model.Box, editCode string, header model.Markdown) error {
result, err := tx.Exec(
`INSERT INTO box (id, url, edit_code, header, private, moderation, created_at, last_updated_at)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)`,
box.ID(), box.Url(), editCode, header, box.Private(), box.Moderation(),
box.CreatedAt(), box.LastUpdatedAt(),
)
if err != nil {
return err
}
n, err := result.RowsAffected()
if err != nil {
return err
}
if n != 1 {
return errNoRowsAffected
}
return nil
}