diff --git a/src/actions/organization/create.js b/src/actions/organization/create.js index bd70b8dd0..e088db0fc 100644 --- a/src/actions/organization/create.js +++ b/src/actions/organization/create.js @@ -62,17 +62,20 @@ async function createOrganization(organizationName, active, lock) { * @apiParam (Payload) {String} members.lastName - member last name. * @apiParam (Payload) {String[]} members.permissions - member permission list. * - * @apiSuccess (Response) {String} id - organization id. - * @apiSuccess (Response) {String} name - organization name. - * @apiSuccess (Response) {Boolean} active - organization state. - * @apiSuccess (Response) {Object[]} members - organization members. - * @apiSuccess (Response) {String} members.username - member email. - * @apiSuccess (Response) {String} members.firstName - member first name. - * @apiSuccess (Response) {String} members.lastName - member last name. - * @apiSuccess (Response) {Date} members.invited - member invite date. - * @apiSuccess (Response) {Date} members.accepted - member accept invite date. - * @apiSuccess (Response) {String[]} members.permissions - member permission list. - * @apiSuccess (Response) {Object} metadata - organization metadata + * @apiSuccess (Response) {String} meta.invites - organization invites list. + * @apiSuccess (Response) {String} data.id - organization id. + * @apiSuccess (Response) {String} data.type - response type. + * @apiSuccess (Response) {String} data.attributes.id - organization id. + * @apiSuccess (Response) {String} data.attributes.name - organization name. + * @apiSuccess (Response) {Boolean} data.attributes.active - organization state. + * @apiSuccess (Response) {Object[]} data.attributes.members - organization members. + * @apiSuccess (Response) {String} data.attributes.members.username - member email. + * @apiSuccess (Response) {String} data.attributes.members.firstName - member first name. + * @apiSuccess (Response) {String} data.attributes.members.lastName - member last name. + * @apiSuccess (Response) {Date} data.attributes.members.invited - member invite date. + * @apiSuccess (Response) {Date} data.attributes.members.accepted - member accept invite date. + * @apiSuccess (Response) {String[]} data.attributes.members.permissions - member permission list. + * @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata */ async function createOrganizationAction({ params, locals }) { const service = this; @@ -97,10 +100,14 @@ async function createOrganizationAction({ params, locals }) { members, }); - const data = await getOrganizationMetadataAndMembers.call(this, organizationId); + const organization = await getOrganizationMetadataAndMembers.call(this, organizationId); return { - data, + data: { + id: organizationId, + type: 'organization', + attributes: organization, + }, meta: { invites, }, diff --git a/src/actions/organization/get.js b/src/actions/organization/get.js index 0805f4887..ccdcb92f8 100644 --- a/src/actions/organization/get.js +++ b/src/actions/organization/get.js @@ -9,22 +9,30 @@ const { getOrganizationMetadataAndMembers, checkOrganizationExists } = require(' * * @apiParam (Payload) {String} organizationId - organization id. * - * @apiSuccess (Response) {String} id - organization id. - * @apiSuccess (Response) {String} name - organization name. - * @apiSuccess (Response) {Boolean} active - organization state. - * @apiSuccess (Response) {Object[]} members - organization members. - * @apiSuccess (Response) {String} members.username - member email. - * @apiSuccess (Response) {String} members.firstName - member first name. - * @apiSuccess (Response) {String} members.lastName - member last name. - * @apiSuccess (Response) {Date} members.invited - member invite date. - * @apiSuccess (Response) {Date} members.accepted - member accept invite date. - * @apiSuccess (Response) {String[]} members.permissions - member permission list. - * @apiSuccess (Response) {Object} metadata - organization metadata + * @apiSuccess (Response) {String} data.id - organization id. + * @apiSuccess (Response) {String} data.type - response type. + * @apiSuccess (Response) {String} data.attributes.id - organization id. + * @apiSuccess (Response) {String} data.attributes.name - organization name. + * @apiSuccess (Response) {Boolean} data.attributes.active - organization state. + * @apiSuccess (Response) {Object[]} data.attributes.members - organization members. + * @apiSuccess (Response) {String} data.attributes.members.username - member email. + * @apiSuccess (Response) {String} data.attributes.members.firstName - member first name. + * @apiSuccess (Response) {String} data.attributes.members.lastName - member last name. + * @apiSuccess (Response) {Date} data.attributes.members.invited - member invite date. + * @apiSuccess (Response) {Date} data.attributes.members.accepted - member accept invite date. + * @apiSuccess (Response) {String[]} data.attributes.members.permissions - member permission list. + * @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata */ async function getOrganization({ params }) { const { organizationId } = params; - const data = await getOrganizationMetadataAndMembers.call(this, organizationId); - return { data }; + const organization = await getOrganizationMetadataAndMembers.call(this, organizationId); + return { + data: { + id: organizationId, + type: 'organization', + attributes: organization, + }, + }; } getOrganization.allowed = checkOrganizationExists; diff --git a/src/actions/organization/getMetadata.js b/src/actions/organization/getMetadata.js index d90a60b66..4dbb1e339 100644 --- a/src/actions/organization/getMetadata.js +++ b/src/actions/organization/getMetadata.js @@ -9,7 +9,9 @@ const { getOrganizationMetadata, checkOrganizationExists } = require('../../util * * @apiParam (Payload) {String} organizationId - organization id. * - * @apiSuccess (Response) {Object} metadata - organization metadata + * @apiSuccess (Response) {Object} data.id - organization id + * @apiSuccess (Response) {String} data.type - response type. + * @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata */ async function organizationMetadata({ params }) { const { organizationId } = params; @@ -18,7 +20,8 @@ async function organizationMetadata({ params }) { return { data: { id: organizationId, - metadata, + type: 'organizationMetadata', + attributes: metadata, }, }; } diff --git a/src/actions/organization/list.js b/src/actions/organization/list.js index 502d51b99..00b63b851 100644 --- a/src/actions/organization/list.js +++ b/src/actions/organization/list.js @@ -55,7 +55,11 @@ async function getOrganizationsList({ params }) { }); return { - data: organizations, + data: organizations.map(organization => ({ + id: organization.id, + type: 'organization', + attributes: organization, + })), meta: { cursor: offset + limit, page: Math.floor(offset / limit) + 1, diff --git a/src/actions/organization/members/list.js b/src/actions/organization/members/list.js index 8ed13b0fa..e575d28db 100644 --- a/src/actions/organization/members/list.js +++ b/src/actions/organization/members/list.js @@ -24,7 +24,17 @@ async function organizationMembersList({ params }) { const { organizationId } = params; const members = await getOrganizationMembers.call(this, organizationId); - return { data: { id: organizationId, members } }; + return { + data: { + id: organizationId, + type: 'organizationMembers', + attributes: members.map(member => ({ + id: member.username, + type: 'organizationMember', + attributes: member, + })), + }, + }; } organizationMembersList.allowed = checkOrganizationExists; diff --git a/src/actions/organization/state.js b/src/actions/organization/state.js index 9150f8742..8fd01b6d3 100644 --- a/src/actions/organization/state.js +++ b/src/actions/organization/state.js @@ -24,7 +24,8 @@ async function updateOrganizationState({ params }) { return { data: { id: organizationId, - active, + type: 'organizationState', + attributes: { active }, }, }; } diff --git a/src/actions/organization/updateMetadata.js b/src/actions/organization/updateMetadata.js index 3939204c3..5d16b40fc 100644 --- a/src/actions/organization/updateMetadata.js +++ b/src/actions/organization/updateMetadata.js @@ -33,7 +33,8 @@ async function updateOrganizationMetadata({ params }) { return { data: { id: organizationId, - metadata: data, + type: 'organizationMetadata', + attributes: data, }, }; } diff --git a/test/helpers/organization.js b/test/helpers/organization.js index daf386700..52a432c84 100644 --- a/test/helpers/organization.js +++ b/test/helpers/organization.js @@ -35,7 +35,7 @@ exports.createOrganization = async function (customOpts = {}, totalUsers = 1) { .then(inspectPromise(true)); this.organization = { - ...organization.data, + ...organization.data.attributes, ...organization.meta, }; return this.organization; diff --git a/test/suites/organization/create.js b/test/suites/organization/create.js index 34b7237a2..776df2881 100644 --- a/test/suites/organization/create.js +++ b/test/suites/organization/create.js @@ -34,7 +34,7 @@ describe('#create organization', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((response) => { - const createdOrganization = response.data; + const createdOrganization = response.data.attributes; assert(createdOrganization.name === params.name); assert(createdOrganization.metadata.description === params.metadata.description); assert(createdOrganization.members.length === 2); diff --git a/test/suites/organization/get.js b/test/suites/organization/get.js index 4638a6797..39b34f9c4 100644 --- a/test/suites/organization/get.js +++ b/test/suites/organization/get.js @@ -27,7 +27,7 @@ describe('#get organization', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((response) => { - assert.deepEqual(response.data, organization); + assert.deepEqual(response.data.attributes, organization); }); }); diff --git a/test/suites/organization/getMetadata.js b/test/suites/organization/getMetadata.js index 2c25e8494..556fb6647 100644 --- a/test/suites/organization/getMetadata.js +++ b/test/suites/organization/getMetadata.js @@ -30,8 +30,8 @@ describe('#organization members metadata', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((response) => { - assert.ok(response.data.metadata); - assert.deepEqual(response.data.metadata, this.organization.metadata); + assert.ok(response.data.attributes); + assert.deepEqual(response.data.attributes, this.organization.metadata); }); }); diff --git a/test/suites/organization/list.js b/test/suites/organization/list.js index d15189e57..110f0841d 100644 --- a/test/suites/organization/list.js +++ b/test/suites/organization/list.js @@ -37,9 +37,11 @@ describe('#organizations list', function registerSuite() { assert.equal(meta.pages, organizationsLength / opts.limit); data.forEach((organization) => { expect(organization).to.have.ownProperty('id'); - expect(organization).to.have.ownProperty('metadata'); - expect(organization).to.have.ownProperty('name'); - expect(organization).to.have.ownProperty('active'); + expect(organization).to.have.ownProperty('type'); + expect(organization.attributes).to.have.ownProperty('id'); + expect(organization.attributes).to.have.ownProperty('name'); + expect(organization.attributes).to.have.ownProperty('active'); + expect(organization.attributes).to.have.ownProperty('metadata'); }); }); }); @@ -69,7 +71,7 @@ describe('#organizations list', function registerSuite() { assert.equal(meta.cursor, 1); assert.equal(meta.page, 1); assert.equal(meta.pages, 1); - assert.deepEqual(data[0], organization); + assert.deepEqual(data[0].attributes, organization); }); }); }); diff --git a/test/suites/organization/members/list.js b/test/suites/organization/members/list.js index 11e1b05ea..18fcb9387 100644 --- a/test/suites/organization/members/list.js +++ b/test/suites/organization/members/list.js @@ -31,8 +31,8 @@ describe('#organization members list', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((response) => { - assert.ok(response.data.members); - assert.equal(response.data.members.length, 5); + assert.ok(response.data.attributes); + assert.equal(response.data.attributes.length, 5); }); }); diff --git a/test/suites/organization/state.js b/test/suites/organization/state.js index 190dfd85e..a04407e10 100644 --- a/test/suites/organization/state.js +++ b/test/suites/organization/state.js @@ -31,7 +31,7 @@ describe('#switch state organization', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((response) => { - assert.deepEqual({ id: this.organization.id, active: true }, response.data); + assert(response.data.attributes.active); }); }); diff --git a/test/suites/organization/updateMetadata.js b/test/suites/organization/updateMetadata.js index b726aaaba..1bd1ab614 100644 --- a/test/suites/organization/updateMetadata.js +++ b/test/suites/organization/updateMetadata.js @@ -34,8 +34,8 @@ describe('#update metadata organization', function registerSuite() { .reflect() .then(inspectPromise(true)) .then((createdOrganization) => { - assert(createdOrganization.data.metadata.description === undefined); - assert(createdOrganization.data.metadata.address === 'test'); + assert(createdOrganization.data.attributes.description === undefined); + assert(createdOrganization.data.attributes.address === 'test'); }); });