mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
Fixed validation for Members API newsletters endpoint
refs https://github.com/TryGhost/Toolbox/issues/465
refs 31546a6fd3/packages/admin-api-schema/lib/schemas/members.json (L93-L103)
- Updated Members API newsletter validation to match the subset of Admin API's members validation schema.
This commit is contained in:
parent
81566aca88
commit
6989d08b19
2 changed files with 20 additions and 0 deletions
|
@ -187,6 +187,8 @@ describe('Front-end members behavior', function () {
|
||||||
getJsonResponse.newsletters.should.have.length(1);
|
getJsonResponse.newsletters.should.have.length(1);
|
||||||
|
|
||||||
// Can update newsletter subscription
|
// Can update newsletter subscription
|
||||||
|
const originalNewsletters = getJsonResponse.newsletters;
|
||||||
|
|
||||||
const res = await request.put(`/members/api/member/newsletters?uuid=${memberUUID}`)
|
const res = await request.put(`/members/api/member/newsletters?uuid=${memberUUID}`)
|
||||||
.send({
|
.send({
|
||||||
newsletters: []
|
newsletters: []
|
||||||
|
@ -198,6 +200,18 @@ describe('Front-end members behavior', function () {
|
||||||
jsonResponse.should.have.properties(['email', 'uuid', 'status', 'name', 'newsletters']);
|
jsonResponse.should.have.properties(['email', 'uuid', 'status', 'name', 'newsletters']);
|
||||||
jsonResponse.should.not.have.property('id');
|
jsonResponse.should.not.have.property('id');
|
||||||
jsonResponse.newsletters.should.have.length(0);
|
jsonResponse.newsletters.should.have.length(0);
|
||||||
|
|
||||||
|
const resRestored = await request.put(`/members/api/member/newsletters?uuid=${memberUUID}`)
|
||||||
|
.send({
|
||||||
|
newsletters: originalNewsletters
|
||||||
|
})
|
||||||
|
.expect(200);
|
||||||
|
|
||||||
|
const restoreJsonResponse = resRestored.body;
|
||||||
|
should.exist(restoreJsonResponse);
|
||||||
|
restoreJsonResponse.should.have.properties(['email', 'uuid', 'status', 'name', 'newsletters']);
|
||||||
|
restoreJsonResponse.should.not.have.property('id');
|
||||||
|
restoreJsonResponse.newsletters.should.have.length(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should serve theme 404 on members endpoint', async function () {
|
it('should serve theme 404 on members endpoint', async function () {
|
||||||
|
|
|
@ -405,6 +405,12 @@ module.exports = class MemberRepository {
|
||||||
'expertise'
|
'expertise'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if (data.newsletters) {
|
||||||
|
data.newsletters = data.newsletters.map(newsletter => ({
|
||||||
|
id: newsletter.id
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
// Trim whitespaces from expertise
|
// Trim whitespaces from expertise
|
||||||
if (memberData.expertise) {
|
if (memberData.expertise) {
|
||||||
memberData.expertise = memberData.expertise.trim();
|
memberData.expertise = memberData.expertise.trim();
|
||||||
|
|
Loading…
Add table
Reference in a new issue