Files
Compass/backend/shared/src/utils.ts
2025-09-20 18:12:46 +02:00

64 lines
1.3 KiB
TypeScript

import {createSupabaseDirectClient, SupabaseDirectClient,} from 'shared/supabase/init'
import {convertPrivateUser, convertUser} from 'common/supabase/users'
import {log, type Logger} from 'shared/monitoring/log'
import {metrics} from 'shared/monitoring/metrics'
export {metrics}
export {log, type Logger}
export const getUser = async (
userId: string,
pg: SupabaseDirectClient = createSupabaseDirectClient()
) => {
return await pg.oneOrNone(
`select *
from users
where id = $1
limit 1`,
[userId],
convertUser
)
}
export const getPrivateUser = async (
userId: string,
pg: SupabaseDirectClient = createSupabaseDirectClient()
) => {
return await pg.oneOrNone(
`select *
from private_users
where id = $1
limit 1`,
[userId],
convertPrivateUser
)
}
export const getUserByUsername = async (
username: string,
pg: SupabaseDirectClient = createSupabaseDirectClient()
) => {
const res = await pg.oneOrNone(
`select *
from users
where username = $1`,
username
)
return res ? convertUser(res) : null
}
export const getPrivateUserByKey = async (
apiKey: string,
pg: SupabaseDirectClient = createSupabaseDirectClient()
) => {
return await pg.oneOrNone(
`select *
from private_users
where data ->> 'apiKey' = $1
limit 1`,
[apiKey],
convertPrivateUser
)
}