mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-03-25 18:13:48 -04:00
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import {createSupabaseDirectClient} from 'shared/supabase/init'
|
|
import {updatePrivateUser} from 'shared/supabase/users'
|
|
import {FieldVal} from 'shared/supabase/utils'
|
|
|
|
import {APIErrors, APIHandler} from './helpers/endpoint'
|
|
|
|
export const blockUser: APIHandler<'user/by-id/:id/block'> = async ({id}, auth) => {
|
|
if (auth.uid === id) throw APIErrors.badRequest('You cannot block yourself')
|
|
|
|
const pg = createSupabaseDirectClient()
|
|
await pg.tx(async (tx) => {
|
|
await updatePrivateUser(tx, auth.uid, {
|
|
blockedUserIds: FieldVal.arrayConcat(id),
|
|
})
|
|
await updatePrivateUser(tx, id, {
|
|
blockedByUserIds: FieldVal.arrayConcat(auth.uid),
|
|
})
|
|
})
|
|
}
|
|
|
|
export const unblockUser: APIHandler<'user/by-id/:id/unblock'> = async ({id}, auth) => {
|
|
const pg = createSupabaseDirectClient()
|
|
await pg.tx(async (tx) => {
|
|
await updatePrivateUser(tx, auth.uid, {
|
|
blockedUserIds: FieldVal.arrayRemove(id),
|
|
})
|
|
await updatePrivateUser(tx, id, {
|
|
blockedByUserIds: FieldVal.arrayRemove(auth.uid),
|
|
})
|
|
})
|
|
}
|