// The query
const saveDocumentQuery = yield* SqlResolver.void("InsertDoc", {
Request: S.Union(
// They are tagged classes & am following what Tim did here: https://github.com/Effect-TS/effect/blob/aa39549a09fde55122c78b31a4298472b6028eaa/packages/sql-pg/examples/resolver.ts#L13 (minus the omit'ing of tag)
S.Struct(Document.Word.fields).omit("_tag"),
S.Struct(Document.Excel.fields).omit("_tag")
).pipe(
S.rename({
createdAt: "created_dtm",
updatedAt: "updated_dtm",
})
),
execute: (doc) => sql`INSERT INTO docs ${sql.insert(doc)}`,
});
// The execution
yield* saveDocumentQuery.execute({
id: document.id,
name: document.name,
text: document.text,
type: document.type,
status: document.status,
// The schema is fine here BUT gets mapped to the DB in it's previous form
created_dtm: now,
updated_dtm: now,
});
// The query
const saveDocumentQuery = yield* SqlResolver.void("InsertDoc", {
Request: S.Union(
// They are tagged classes & am following what Tim did here: https://github.com/Effect-TS/effect/blob/aa39549a09fde55122c78b31a4298472b6028eaa/packages/sql-pg/examples/resolver.ts#L13 (minus the omit'ing of tag)
S.Struct(Document.Word.fields).omit("_tag"),
S.Struct(Document.Excel.fields).omit("_tag")
).pipe(
S.rename({
createdAt: "created_dtm",
updatedAt: "updated_dtm",
})
),
execute: (doc) => sql`INSERT INTO docs ${sql.insert(doc)}`,
});
// The execution
yield* saveDocumentQuery.execute({
id: document.id,
name: document.name,
text: document.text,
type: document.type,
status: document.status,
// The schema is fine here BUT gets mapped to the DB in it's previous form
created_dtm: now,
updated_dtm: now,
});