Current section
Files
Jump to
Current section
Files
src/builders/insert.gleam
// DO NOT EDIT: Code generated by matcha from insert.matcha
import gleam/list
import gleam/string_builder.{type StringBuilder}
import funsies/query/yummy
import funsies/schema.{type Column, type Table}
import gleam/int
import gleam/iterator.{range, to_list}
import gleam/pgo.{type Value}
import gleam/string
fn columnsyay(table: Table) -> StringBuilder {
let builder = string_builder.from_string("")
let builder =
list.fold(table.columns, builder, fn(builder, col: Column) {
let builder = string_builder.append(builder, " yummy.w(value.")
let builder = string_builder.append(builder, col.name)
let builder = string_builder.append(builder, "), ")
builder
})
builder
}
pub fn render_builder(table table: Table) -> StringBuilder {
let builder = string_builder.from_string("")
let builder =
string_builder.append(
builder,
"
",
)
let builder =
string_builder.append(
builder,
"
import funs/",
)
let builder = string_builder.append(builder, table.name)
let builder =
string_builder.append(
builder,
"_decoder
import funs/",
)
let builder = string_builder.append(builder, table.name)
let builder =
string_builder.append(
builder,
"
import gleam/pgo
import funsies/query/yummy
import gleam/list
import gleam/string
",
)
let builder =
string_builder.append(
builder,
"
pub fn insert(
builder: yummy.QueryBuilder,
// columns: List(String),
value: ",
)
let builder = string_builder.append(builder, table.name)
let builder = string_builder.append(builder, ".")
let builder = string_builder.append(builder, string.capitalise(table.name))
let builder =
string_builder.append(
builder,
"Row,
) -> yummy.QueryBuilder {
yummy.QueryBuilder(
builder.table,
builder.select_columns,
builder.where_clauses,
builder.order_by_clauses,
list.map(builder.table.columns, fn(c) { c.name }),
// Set insert columns
[",
)
let builder = string_builder.append_builder(builder, columnsyay(table))
let builder =
string_builder.append(
builder,
"],
// Set insert values
)
}
",
)
builder
}
pub fn render(table table: Table) -> String {
string_builder.to_string(render_builder(table: table))
}