fix(core): update

This commit is contained in:
Philipp Kunz 2020-06-21 16:27:02 +00:00
parent 40704efaa4
commit 057cca6f0e
4 changed files with 69 additions and 23 deletions

View File

@ -20,8 +20,18 @@ tap.test('should get all projects of an organization', async () => {
const losslessOrganization = organizations.find(orgArg => { const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless'); return orgArg.name.startsWith('Lossless');
}); });
const projectsInLosslessOrg = await losslessOrganization.getAllProjects(); const projectsInLosslessOrg = await losslessOrganization.getProjects();
console.log(projectsInLosslessOrg); });
tap.test('should get all lists for a project', async () => {
const organizations = await oraInstance.getOrganizations();
const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless');
});
const projectsInLosslessOrg = await losslessOrganization.getProjects();
const featureProjects = projectsInLosslessOrg.filter(oraProjectArg => {
return oraProjectArg.title
})
}); });
tap.start(); tap.start();

View File

@ -1,5 +1,27 @@
import * as plugins from './ora.plugins'; import * as plugins from './ora.plugins';
import { OraProject } from './ora.classes.project';
export class OraList { export class OraList {
// ======
// STATIC
// ======
public static async getAllLists(oraProjectRef: OraProject) {
const response = await oraProjectRef.oraOrganizationRef.oraRef.request(`/projects/${oraProjectRef.id}/lists`, 'GET');
const oraLists: OraList[] = [];
for (const dataObject of response.data) {
oraLists.push(new OraList(oraProjectRef, dataObject));
}
return oraLists;
}
// ========
// INSTANCE
// ========
public oraProjectObjectRef: OraProject;
constructor(oraProjectRefArg: OraProject, creationObjectArg) {
this.oraProjectObjectRef = oraProjectRefArg;
Object.assign(this, creationObjectArg);
}
} }

View File

@ -18,6 +18,18 @@ export interface IOraOrganization {
} }
export class OraOrganization implements IOraOrganization { export class OraOrganization implements IOraOrganization {
// ======
// STATIC
// ======
public static async getAllOrganizations(oraRef: Ora): Promise<OraOrganization[]> {
const response = await oraRef.request('/organizations', 'GET');
const organizations: OraOrganization[] = [];
for (const orgData of response.data) {
organizations.push(new OraOrganization(oraRef, orgData));
}
return organizations;
}
public created_at: string; public created_at: string;
public description: string; public description: string;
public id: number; public id: number;
@ -31,15 +43,6 @@ export class OraOrganization implements IOraOrganization {
public updated_at: string; public updated_at: string;
public web: string; public web: string;
public static async getAllOrganizations(oraRef: Ora): Promise<OraOrganization[]> {
const response = await oraRef.request('/organizations', 'GET');
const organizations: OraOrganization[] = [];
for (const orgData of response.data) {
organizations.push(new OraOrganization(oraRef, orgData));
}
return organizations;
}
// ======== // ========
// INSTANCE // INSTANCE
// ======== // ========
@ -50,7 +53,7 @@ export class OraOrganization implements IOraOrganization {
Object.assign(this, creationObjectArg); Object.assign(this, creationObjectArg);
} }
public async getAllProjects(): Promise<OraProject[]> { public async getProjects(): Promise<OraProject[]> {
return OraProject.getAllProjectsForOrganization(this); return OraProject.getAllProjectsForOrganization(this);
} }
} }

View File

@ -1,6 +1,7 @@
import * as plugins from './ora.plugins'; import * as plugins from './ora.plugins';
import { Ora } from './ora.classes.ora'; import { Ora } from './ora.classes.ora';
import { OraOrganization } from './ora.classes.organization'; import { OraOrganization } from './ora.classes.organization';
import { OraList } from './ora.classes.list';
export interface IOraProject { export interface IOraProject {
archived: boolean; archived: boolean;
@ -29,6 +30,24 @@ export interface IOraProject {
} }
export class OraProject implements IOraProject { export class OraProject implements IOraProject {
// ======
// STATIC
// ======
public static async getAllProjectsForOrganization(oraOrganizationRef: OraOrganization) {
const response = await oraOrganizationRef.oraRef.request('/projects', 'GET');
const projects: OraProject[] = [];
for (const projectData of response.data) {
const oraProject = new OraProject(oraOrganizationRef, projectData);
if (oraProject.organization_id === oraOrganizationRef.id) {
projects.push(oraProject);
}
}
return projects;
}
// ========
// INSTANCE
// ========
public archived: boolean; public archived: boolean;
public comment_all: number; public comment_all: number;
public commits_visibility: number; public commits_visibility: number;
@ -60,15 +79,7 @@ export class OraProject implements IOraProject {
Object.assign(this, creationObjectArg); Object.assign(this, creationObjectArg);
} }
public static async getAllProjectsForOrganization(oraOrganizationRef: OraOrganization) { public async getLists(): Promise<OraList[]> {
const response = await oraOrganizationRef.oraRef.request('/projects', 'GET'); return OraList.getAllLists(this);
const projects: OraProject[] = [];
for (const projectData of response.data) {
const oraProject = new OraProject(oraOrganizationRef, projectData);
if (oraProject.organization_id === oraOrganizationRef.id) {
projects.push(oraProject);
}
}
return projects;
} }
} }