[PS-1841] Fix org-* commands for CLI (#4013)

* Add getFromState method

* Added a method for CLI to get an org from state

* Converted all CLI calls to `.get()`

* Used `.getFromState` instead of `.get`

* Deprecate getFromState method
This commit is contained in:
Justin Baur 2022-11-08 16:25:19 -05:00 committed by GitHub
parent 30f72825d7
commit c1b25f4389
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 4 deletions

View File

@ -436,7 +436,7 @@ export class GetCommand extends DownloadCommand {
private async getOrganization(id: string) {
let org: Organization = null;
if (Utils.isGuid(id)) {
org = await this.organizationService.get(id);
org = await this.organizationService.getFromState(id);
} else if (id.trim() !== "") {
let orgs = await this.organizationService.getAll();
orgs = CliUtils.searchOrganizations(orgs, id);

View File

@ -23,7 +23,7 @@ export class ImportCommand {
): Promise<Response> {
const organizationId = options.organizationid;
if (organizationId != null) {
const organization = await this.organizationService.get(organizationId);
const organization = await this.organizationService.getFromState(organizationId);
if (organization == null) {
return Response.badRequest(

View File

@ -163,7 +163,7 @@ export class ListCommand {
if (!Utils.isGuid(options.organizationId)) {
return Response.badRequest("`" + options.organizationId + "` is not a GUID.");
}
const organization = await this.organizationService.get(options.organizationId);
const organization = await this.organizationService.getFromState(options.organizationId);
if (organization == null) {
return Response.error("Organization not found.");
}
@ -196,7 +196,7 @@ export class ListCommand {
if (!Utils.isGuid(options.organizationId)) {
return Response.badRequest("`" + options.organizationId + "` is not a GUID.");
}
const organization = await this.organizationService.get(options.organizationId);
const organization = await this.organizationService.getFromState(options.organizationId);
if (organization == null) {
return Response.error("Organization not found.");
}

View File

@ -75,6 +75,11 @@ export abstract class OrganizationService {
get: (id: string) => Organization;
getByIdentifier: (identifier: string) => Organization;
getAll: (userId?: string) => Promise<Organization[]>;
/**
* @deprecated For the CLI only
* @param id id of the organization
*/
getFromState: (id: string) => Promise<Organization>;
canManageSponsorships: () => Promise<boolean>;
hasOrganizations: () => boolean;
}

View File

@ -101,6 +101,20 @@ export class OrganizationService implements OrganizationServiceAbstraction {
return organizations.find((organization) => organization.id === id);
}
/**
* @deprecated For the CLI only
* @param id id of the organization
*/
async getFromState(id: string): Promise<Organization> {
const organizationsMap = await this.stateService.getOrganizations();
const organization = organizationsMap[id];
if (organization == null) {
return null;
}
return new Organization(organization);
}
getByIdentifier(identifier: string): Organization {
const organizations = this._organizations.getValue();