balena-cli
Version:
The official balena Command Line Interface
62 lines • 2.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getApplication = getApplication;
exports.getFleetSlug = getFleetSlug;
exports.getOwnOrganizations = getOwnOrganizations;
async function getApplication(sdk, nameOrSlugOrId, options) {
const { looksLikeFleetSlug } = await Promise.resolve().then(() => require('./validation'));
const whoamiResult = await sdk.auth.whoami();
const isDeviceActor = (whoamiResult === null || whoamiResult === void 0 ? void 0 : whoamiResult.actorType) === 'device';
if (isDeviceActor) {
const $filterByActor = {
$filter: {
owns__device: {
$any: {
$alias: 'd',
$expr: {
d: {
actor: whoamiResult.id,
},
},
},
},
},
};
options = options
? sdk.utils.mergePineOptions(options, $filterByActor)
: $filterByActor;
}
if (typeof nameOrSlugOrId === 'string' &&
!looksLikeFleetSlug(nameOrSlugOrId)) {
return await sdk.models.application.getAppByName(nameOrSlugOrId, options, isDeviceActor ? undefined : 'directly_accessible');
}
const getFunction = isDeviceActor
? sdk.models.application.get
: sdk.models.application.getDirectlyAccessible;
return getFunction(nameOrSlugOrId, options);
}
async function getFleetSlug(sdk, nameOrSlug) {
const { looksLikeFleetSlug } = await Promise.resolve().then(() => require('./validation'));
if (!looksLikeFleetSlug(nameOrSlug)) {
return (await getApplication(sdk, nameOrSlug, { $select: 'slug' })).slug;
}
return nameOrSlug.toLowerCase();
}
async function getOwnOrganizations(sdk, options) {
return await sdk.models.organization.getAll(sdk.utils.mergePineOptions({
$filter: {
organization_membership: {
$any: {
$alias: 'orm',
$expr: {
orm: {
user: (await sdk.auth.getUserInfo()).id,
},
},
},
},
},
$orderby: 'name asc',
}, options));
}
//# sourceMappingURL=sdk.js.map
;