@tak-ps/node-tak
Version:
Lightweight JavaScript library for communicating with TAK Server
55 lines • 1.86 kB
JavaScript
import { Type } from '@sinclair/typebox';
import { TAKList } from './types.js';
import Commands, { CommandOutputFormat } from '../commands.js';
export var MissionSubscriberRole;
(function (MissionSubscriberRole) {
MissionSubscriberRole["MISSION_OWNER"] = "MISSION_OWNER";
MissionSubscriberRole["MISSION_SUBSCRIBER"] = "MISSION_SUBSCRIBER";
MissionSubscriberRole["MISSION_READONLY_SUBSCRIBER"] = "MISSION_READONLY_SUBSCRIBER";
})(MissionSubscriberRole || (MissionSubscriberRole = {}));
export const MissionInvite = Type.String();
export const TAKList_MissionInvites = TAKList(MissionInvite);
/**
* @class
*/
export default class MissionInviteCommands extends Commands {
schema = {
list: {
description: 'List Mission Invites',
params: Type.Object({}),
query: Type.Object({}),
formats: [CommandOutputFormat.JSON]
}
};
async cli(args) {
if (args._[3] === 'list') {
const list = await this.list();
if (args.format === 'json') {
return list;
}
else {
return list.data.map((invite) => {
return `${invite}`;
}).join('\n');
}
}
else {
throw new Error('Unsupported Subcommand');
}
}
/**
* List all Invitations for missions
*
* {@link https://docs.tak.gov/api/takserver/redoc#tag/mission-api/operation/getAllMissionInvitations TAK Server Docs}.
*/
async list(clientUid) {
const url = new URL('/Marti/api/missions/all/invitations', this.api.url);
if (clientUid) {
url.searchParams.append('clientUid', clientUid);
}
return await this.api.fetch(url, {
method: 'GET'
});
}
}
//# sourceMappingURL=mission-invite.js.map