database
This is the main entry point for interacting with pgo dbs. It does things like selecting all rows, single records, inserting, updating, and deleting.
Functions
pub fn all(q: Query(a), db: Connection) -> Result(List(a), Nil)
Select all rows from a table.
Examples
schema
|> from()
|> select(["id", "name"])
|> database.all(db)
schema
|> from()
|> select(["*"])
|> database.all(db)
pub fn delete(query: Query(a), db: Connection) -> Result(a, Nil)
Delete a record from a table. Right now it will only return the first deleted record but could be updated to return more than one.
Examples
schema()
|> from()
|> where([#("id = $1", [pgo.int(id)])])
|> database.delete(db)
pub fn insert(schema: Schema(a), data: List(Value), db: Connection) -> Result(
a,
Nil,
)
Insert a record into a table.
Examples
database.insert(
schema(),
[pgo.text(note.title), pgo.text(note.content)],
db,
)
pub fn one(q: Query(a), db: Connection) -> Result(a, Nil)
Select a single record from a table. If there’s more than one row returned this will only return the first.
Examples
schema()
|> from()
|> select(["*"])
|> where([#("id = $1", [pgo.int(id)])])
|> database.one(db)
schema()
|> from()
|> select(["id"])
|> where([#("title ilike '%$1%'", [pgo.text(title)])])
|> database.one(db)
pub fn update(query: Query(a), data: List(#(String, Value)), db: Connection) -> Result(
a,
Nil,
)
Update one or more records in a table. Right now it will only return the first updated record but could be updated to return more than one.
Examples
schema()
|> from()
|> where([#("id = $1", [pgo.int(id)])])
|> database.update(
[
#("title", pgo.text(note.title)),
#("content", pgo.text(note.content)),
],
db,
)