diff --git a/test/test.ts b/test/test.ts index 257221e..8f376a2 100644 --- a/test/test.ts +++ b/test/test.ts @@ -20,8 +20,18 @@ tap.test('should get all projects of an organization', async () => { const losslessOrganization = organizations.find(orgArg => { return orgArg.name.startsWith('Lossless'); }); - const projectsInLosslessOrg = await losslessOrganization.getAllProjects(); - console.log(projectsInLosslessOrg); + const projectsInLosslessOrg = await losslessOrganization.getProjects(); +}); + +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(); diff --git a/ts/ora.classes.list.ts b/ts/ora.classes.list.ts index 6389049..8ee5542 100644 --- a/ts/ora.classes.list.ts +++ b/ts/ora.classes.list.ts @@ -1,5 +1,27 @@ import * as plugins from './ora.plugins'; +import { OraProject } from './ora.classes.project'; 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); + } } \ No newline at end of file diff --git a/ts/ora.classes.organization.ts b/ts/ora.classes.organization.ts index c48f0a2..72e8d22 100644 --- a/ts/ora.classes.organization.ts +++ b/ts/ora.classes.organization.ts @@ -18,6 +18,18 @@ export interface IOraOrganization { } export class OraOrganization implements IOraOrganization { + // ====== + // STATIC + // ====== + public static async getAllOrganizations(oraRef: Ora): Promise { + 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 description: string; public id: number; @@ -31,15 +43,6 @@ export class OraOrganization implements IOraOrganization { public updated_at: string; public web: string; - public static async getAllOrganizations(oraRef: Ora): Promise { - 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 // ======== @@ -50,7 +53,7 @@ export class OraOrganization implements IOraOrganization { Object.assign(this, creationObjectArg); } - public async getAllProjects(): Promise { + public async getProjects(): Promise { return OraProject.getAllProjectsForOrganization(this); } } diff --git a/ts/ora.classes.project.ts b/ts/ora.classes.project.ts index ec60d29..fd27cc1 100644 --- a/ts/ora.classes.project.ts +++ b/ts/ora.classes.project.ts @@ -1,6 +1,7 @@ import * as plugins from './ora.plugins'; import { Ora } from './ora.classes.ora'; import { OraOrganization } from './ora.classes.organization'; +import { OraList } from './ora.classes.list'; export interface IOraProject { archived: boolean; @@ -29,6 +30,24 @@ export interface 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 comment_all: number; public commits_visibility: number; @@ -60,15 +79,7 @@ export class OraProject implements IOraProject { Object.assign(this, creationObjectArg); } - 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; + public async getLists(): Promise { + return OraList.getAllLists(this); } }