// Generated by moonorm sql from models.mbt. Edit those files, not this one.
///|
fn adults(db : &@moondb.Driver, age : Int32) -> Array[User] raise {
let rows = db.query(
"SELECT id, name, age FROM user WHERE age > ?", [
@moondb.ToValue::to_value(age),
],
)
rows.map(
row => {
id: @mapper.column(row, "id"),
name: @mapper.column(row, "name"),
age: @mapper.column(row, "age"),
},
)
}
///|
fn find(db : &@moondb.Driver, id : Int64) -> User? raise {
let rows = db.query(
"SELECT id, name, age FROM user WHERE id = ?", [
@moondb.ToValue::to_value(id),
],
)
match @mapper.optional(rows) {
Some(row) => {
Some(
{
id: @mapper.column(row, "id"),
name: @mapper.column(row, "name"),
age: @mapper.column(row, "age"),
},
)
}
None => None
}
}
///|
fn total(db : &@moondb.Driver) -> Int64 raise {
let rows = db.query("SELECT count(*) FROM user", [])
let row = @mapper.one(rows)
@mapper.first(row)
}
///|
fn renamed(db : &@moondb.Driver) -> Array[User] raise {
let rows = db.query("SELECT id, name AS user_name, age FROM user", [])
rows.map(
row => {
id: @mapper.column(row, "id"),
name: @mapper.column(row, "user_name"),
age: @mapper.column(row, "age"),
},
)
}
///|
fn add(db : &@moondb.Driver, u : User) -> Int64 raise {
let result = db.execute(
"INSERT INTO user(name, age) VALUES(?, ?)", [
@moondb.ToValue::to_value(u.name),
@moondb.ToValue::to_value(u.age),
],
)
result.last_insert_id
}
///|
fn add_returning(db : &@moondb.Driver, u : User) -> Int64 raise {
let rows = db.query(
"INSERT INTO user(name, age) VALUES($1, $2) RETURNING id", [
@moondb.ToValue::to_value(u.name),
@moondb.ToValue::to_value(u.age),
],
)
let row = @mapper.one(rows)
@mapper.first(row)
}
///|
fn set_age(db : &@moondb.Driver, id : Int64, age : Int32) -> Int64 raise {
let result = db.execute(
"UPDATE user SET age = ? WHERE id = ?", [
@moondb.ToValue::to_value(age),
@moondb.ToValue::to_value(id),
],
)
result.rows_affected
}
///|
fn remove(db : &@moondb.Driver, id : Int64) -> Unit raise {
let result =
db.execute("DELETE FROM user WHERE id = ?", [@moondb.ToValue::to_value(id)])
ignore(result)
}