import define from "../../../define.js"; import { RegistryItems } from "../../../../../models/index.js"; import { ApiError } from "../../../error.js"; export const meta = { requireCredential: true, secure: true, errors: { noSuchKey: { message: "No such key.", code: "NO_SUCH_KEY", id: "97a1e8e7-c0f7-47d2-957a-92e61256e01a" } } }; export const paramDef = { type: "object", properties: { key: { type: "string" }, scope: { type: "array", default: [], items: { type: "string", pattern: /^[a-zA-Z0-9_]+$/.toString().slice(1, -1) } } }, required: [ "key" ] }; export default define(meta, paramDef, async (ps, user)=>{ const query = RegistryItems.createQueryBuilder("item").where("item.domain IS NULL").andWhere("item.userId = :userId", { userId: user.id }).andWhere("item.key = :key", { key: ps.key }).andWhere("item.scope = :scope", { scope: ps.scope }); const item = await query.getOne(); if (item == null) { throw new ApiError(meta.errors.noSuchKey); } return { updatedAt: item.updatedAt, value: item.value }; });