Skip to content

Commit bf11f46

Browse files
BrRenatjenyapoyarkov
authored andcommitted
fix: edited organizations response (#396)
1 parent a58318c commit bf11f46

15 files changed

Lines changed: 82 additions & 46 deletions

File tree

src/actions/organization/create.js

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,20 @@ async function createOrganization(organizationName, active, lock) {
6262
* @apiParam (Payload) {String} members.lastName - member last name.
6363
* @apiParam (Payload) {String[]} members.permissions - member permission list.
6464
*
65-
* @apiSuccess (Response) {String} id - organization id.
66-
* @apiSuccess (Response) {String} name - organization name.
67-
* @apiSuccess (Response) {Boolean} active - organization state.
68-
* @apiSuccess (Response) {Object[]} members - organization members.
69-
* @apiSuccess (Response) {String} members.username - member email.
70-
* @apiSuccess (Response) {String} members.firstName - member first name.
71-
* @apiSuccess (Response) {String} members.lastName - member last name.
72-
* @apiSuccess (Response) {Date} members.invited - member invite date.
73-
* @apiSuccess (Response) {Date} members.accepted - member accept invite date.
74-
* @apiSuccess (Response) {String[]} members.permissions - member permission list.
75-
* @apiSuccess (Response) {Object} metadata - organization metadata
65+
* @apiSuccess (Response) {String} meta.invites - organization invites list.
66+
* @apiSuccess (Response) {String} data.id - organization id.
67+
* @apiSuccess (Response) {String} data.type - response type.
68+
* @apiSuccess (Response) {String} data.attributes.id - organization id.
69+
* @apiSuccess (Response) {String} data.attributes.name - organization name.
70+
* @apiSuccess (Response) {Boolean} data.attributes.active - organization state.
71+
* @apiSuccess (Response) {Object[]} data.attributes.members - organization members.
72+
* @apiSuccess (Response) {String} data.attributes.members.username - member email.
73+
* @apiSuccess (Response) {String} data.attributes.members.firstName - member first name.
74+
* @apiSuccess (Response) {String} data.attributes.members.lastName - member last name.
75+
* @apiSuccess (Response) {Date} data.attributes.members.invited - member invite date.
76+
* @apiSuccess (Response) {Date} data.attributes.members.accepted - member accept invite date.
77+
* @apiSuccess (Response) {String[]} data.attributes.members.permissions - member permission list.
78+
* @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata
7679
*/
7780
async function createOrganizationAction({ params, locals }) {
7881
const service = this;
@@ -97,10 +100,14 @@ async function createOrganizationAction({ params, locals }) {
97100
members,
98101
});
99102

100-
const data = await getOrganizationMetadataAndMembers.call(this, organizationId);
103+
const organization = await getOrganizationMetadataAndMembers.call(this, organizationId);
101104

102105
return {
103-
data,
106+
data: {
107+
id: organizationId,
108+
type: 'organization',
109+
attributes: organization,
110+
},
104111
meta: {
105112
invites,
106113
},

src/actions/organization/get.js

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,30 @@ const { getOrganizationMetadataAndMembers, checkOrganizationExists } = require('
99
*
1010
* @apiParam (Payload) {String} organizationId - organization id.
1111
*
12-
* @apiSuccess (Response) {String} id - organization id.
13-
* @apiSuccess (Response) {String} name - organization name.
14-
* @apiSuccess (Response) {Boolean} active - organization state.
15-
* @apiSuccess (Response) {Object[]} members - organization members.
16-
* @apiSuccess (Response) {String} members.username - member email.
17-
* @apiSuccess (Response) {String} members.firstName - member first name.
18-
* @apiSuccess (Response) {String} members.lastName - member last name.
19-
* @apiSuccess (Response) {Date} members.invited - member invite date.
20-
* @apiSuccess (Response) {Date} members.accepted - member accept invite date.
21-
* @apiSuccess (Response) {String[]} members.permissions - member permission list.
22-
* @apiSuccess (Response) {Object} metadata - organization metadata
12+
* @apiSuccess (Response) {String} data.id - organization id.
13+
* @apiSuccess (Response) {String} data.type - response type.
14+
* @apiSuccess (Response) {String} data.attributes.id - organization id.
15+
* @apiSuccess (Response) {String} data.attributes.name - organization name.
16+
* @apiSuccess (Response) {Boolean} data.attributes.active - organization state.
17+
* @apiSuccess (Response) {Object[]} data.attributes.members - organization members.
18+
* @apiSuccess (Response) {String} data.attributes.members.username - member email.
19+
* @apiSuccess (Response) {String} data.attributes.members.firstName - member first name.
20+
* @apiSuccess (Response) {String} data.attributes.members.lastName - member last name.
21+
* @apiSuccess (Response) {Date} data.attributes.members.invited - member invite date.
22+
* @apiSuccess (Response) {Date} data.attributes.members.accepted - member accept invite date.
23+
* @apiSuccess (Response) {String[]} data.attributes.members.permissions - member permission list.
24+
* @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata
2325
*/
2426
async function getOrganization({ params }) {
2527
const { organizationId } = params;
26-
const data = await getOrganizationMetadataAndMembers.call(this, organizationId);
27-
return { data };
28+
const organization = await getOrganizationMetadataAndMembers.call(this, organizationId);
29+
return {
30+
data: {
31+
id: organizationId,
32+
type: 'organization',
33+
attributes: organization,
34+
},
35+
};
2836
}
2937

3038
getOrganization.allowed = checkOrganizationExists;

src/actions/organization/getMetadata.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ const { getOrganizationMetadata, checkOrganizationExists } = require('../../util
99
*
1010
* @apiParam (Payload) {String} organizationId - organization id.
1111
*
12-
* @apiSuccess (Response) {Object} metadata - organization metadata
12+
* @apiSuccess (Response) {Object} data.id - organization id
13+
* @apiSuccess (Response) {String} data.type - response type.
14+
* @apiSuccess (Response) {Object} data.attributes.metadata - organization metadata
1315
*/
1416
async function organizationMetadata({ params }) {
1517
const { organizationId } = params;
@@ -18,7 +20,8 @@ async function organizationMetadata({ params }) {
1820
return {
1921
data: {
2022
id: organizationId,
21-
metadata,
23+
type: 'organizationMetadata',
24+
attributes: metadata,
2225
},
2326
};
2427
}

src/actions/organization/list.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ async function getOrganizationsList({ params }) {
5555
});
5656

5757
return {
58-
data: organizations,
58+
data: organizations.map(organization => ({
59+
id: organization.id,
60+
type: 'organization',
61+
attributes: organization,
62+
})),
5963
meta: {
6064
cursor: offset + limit,
6165
page: Math.floor(offset / limit) + 1,

src/actions/organization/members/list.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,17 @@ async function organizationMembersList({ params }) {
2424
const { organizationId } = params;
2525

2626
const members = await getOrganizationMembers.call(this, organizationId);
27-
return { data: { id: organizationId, members } };
27+
return {
28+
data: {
29+
id: organizationId,
30+
type: 'organizationMembers',
31+
attributes: members.map(member => ({
32+
id: member.username,
33+
type: 'organizationMember',
34+
attributes: member,
35+
})),
36+
},
37+
};
2838
}
2939

3040
organizationMembersList.allowed = checkOrganizationExists;

src/actions/organization/state.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ async function updateOrganizationState({ params }) {
2424
return {
2525
data: {
2626
id: organizationId,
27-
active,
27+
type: 'organizationState',
28+
attributes: { active },
2829
},
2930
};
3031
}

src/actions/organization/updateMetadata.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ async function updateOrganizationMetadata({ params }) {
3333
return {
3434
data: {
3535
id: organizationId,
36-
metadata: data,
36+
type: 'organizationMetadata',
37+
attributes: data,
3738
},
3839
};
3940
}

test/helpers/organization.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ exports.createOrganization = async function (customOpts = {}, totalUsers = 1) {
3535
.then(inspectPromise(true));
3636

3737
this.organization = {
38-
...organization.data,
38+
...organization.data.attributes,
3939
...organization.meta,
4040
};
4141
return this.organization;

test/suites/organization/create.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe('#create organization', function registerSuite() {
3434
.reflect()
3535
.then(inspectPromise(true))
3636
.then((response) => {
37-
const createdOrganization = response.data;
37+
const createdOrganization = response.data.attributes;
3838
assert(createdOrganization.name === params.name);
3939
assert(createdOrganization.metadata.description === params.metadata.description);
4040
assert(createdOrganization.members.length === 2);

test/suites/organization/get.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ describe('#get organization', function registerSuite() {
2727
.reflect()
2828
.then(inspectPromise(true))
2929
.then((response) => {
30-
assert.deepEqual(response.data, organization);
30+
assert.deepEqual(response.data.attributes, organization);
3131
});
3232
});
3333

0 commit comments

Comments
 (0)