Sharkey/src/server/api/endpoints/antennas/show.ts

53 lines
1 KiB
TypeScript
Raw Normal View History

import $ from 'cafy';
2021-03-23 10:43:07 +02:00
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas } from '../../../../models';
export const meta = {
desc: {
'ja-JP': '指定したアンテナの情報を取得します。',
'en-US': 'Acquires the information of the specified antenna.'
},
tags: ['antennas', 'account'],
2020-02-15 14:33:32 +02:00
requireCredential: true as const,
kind: 'read:account',
params: {
antennaId: {
validator: $.type(ID),
},
},
errors: {
noSuchAntenna: {
message: 'No such antenna.',
code: 'NO_SUCH_ANTENNA',
id: 'c06569fb-b025-4f23-b22d-1fcd20d2816b'
},
},
res: {
type: 'object' as const,
optional: false as const, nullable: false as const,
ref: 'Antenna'
}
};
export default define(meta, async (ps, me) => {
// Fetch the antenna
const antenna = await Antennas.findOne({
id: ps.antennaId,
userId: me.id,
});
if (antenna == null) {
throw new ApiError(meta.errors.noSuchAntenna);
}
return await Antennas.pack(antenna);
});