kopia lustrzana https://github.com/cloudflare/wildebeest
Merge pull request #387 from cloudflare/sven/fix-setActorAlias-psql
fix psql query in setActorAliaspull/363/head
commit
6b07cb25fa
|
@ -225,7 +225,7 @@ export async function updateActorProperty(db: Database, actorId: URL, key: strin
|
||||||
|
|
||||||
export async function setActorAlias(db: Database, actorId: URL, alias: URL) {
|
export async function setActorAlias(db: Database, actorId: URL, alias: URL) {
|
||||||
const { success, error } = await db
|
const { success, error } = await db
|
||||||
.prepare(`UPDATE actors SET properties=json_set(properties, '$.alsoKnownAs', json_array(?)) WHERE id=?`)
|
.prepare(`UPDATE actors SET properties=json_set(properties, '$.alsoKnownAs', ${db.qb.jsonArray('?1')}) WHERE id=?2`)
|
||||||
.bind(alias.toString(), actorId.toString())
|
.bind(alias.toString(), actorId.toString())
|
||||||
.run()
|
.run()
|
||||||
if (!success) {
|
if (!success) {
|
||||||
|
|
|
@ -25,6 +25,10 @@ const qb: QueryBuilder = {
|
||||||
psqlOnly(): string {
|
psqlOnly(): string {
|
||||||
return ''
|
return ''
|
||||||
},
|
},
|
||||||
|
|
||||||
|
jsonArray(r: string): string {
|
||||||
|
return `json_array(${r})`
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function make({ DATABASE }: Pick<Env, 'DATABASE'>): Database {
|
export default function make({ DATABASE }: Pick<Env, 'DATABASE'>): Database {
|
||||||
|
|
|
@ -33,6 +33,7 @@ export interface QueryBuilder {
|
||||||
epoch(): string
|
epoch(): string
|
||||||
insertOrIgnore(q: string): string
|
insertOrIgnore(q: string): string
|
||||||
psqlOnly(raw: string): string
|
psqlOnly(raw: string): string
|
||||||
|
jsonArray(r: string): string
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getDatabase(env: Pick<Env, 'DATABASE' | 'NEON_DATABASE_URL'>): Promise<Database> {
|
export async function getDatabase(env: Pick<Env, 'DATABASE' | 'NEON_DATABASE_URL'>): Promise<Database> {
|
||||||
|
|
|
@ -34,6 +34,10 @@ const qb: QueryBuilder = {
|
||||||
psqlOnly(q: string): string {
|
psqlOnly(q: string): string {
|
||||||
return q
|
return q
|
||||||
},
|
},
|
||||||
|
|
||||||
|
jsonArray(r: string): string {
|
||||||
|
return `json_array_elements_text(${r})`
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export default async function make(env: Pick<Env, 'NEON_DATABASE_URL'>): Promise<Database> {
|
export default async function make(env: Pick<Env, 'NEON_DATABASE_URL'>): Promise<Database> {
|
||||||
|
|
Ładowanie…
Reference in New Issue