mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-04-08 02:52:39 -05:00
Removed redundant member manipulation proxy methods (#11423)
no issue - This includes the interface change for members-api constructor - now accepts the member's model instead of proxy methods. These methods have been moved ton @tryghost/members-api in favor of using the model directly (ref: https://github.com/TryGhost/Members/pull/105) - Moved error handling from the service layer to controller - Bumped @tryghost/member-api package to 0.10.0
This commit is contained in:
parent
59143de19d
commit
bcddeeadf1
4 changed files with 16 additions and 69 deletions
|
@ -1,6 +1,7 @@
|
|||
// NOTE: We must not cache references to membersService.api
|
||||
// as it is a getter and may change during runtime.
|
||||
const Promise = require('bluebird');
|
||||
const models = require('../../models');
|
||||
const membersService = require('../../services/members');
|
||||
const common = require('../../lib/common');
|
||||
const fsLib = require('../../lib/fs');
|
||||
|
@ -113,7 +114,15 @@ const members = {
|
|||
permissions: true,
|
||||
async query(frame) {
|
||||
frame.options.require = true;
|
||||
await membersService.api.members.destroy(frame.options);
|
||||
await membersService.api.members.destroy(frame.options)
|
||||
.catch(models.Member.NotFoundError, () => {
|
||||
throw new common.errors.NotFoundError({
|
||||
message: common.i18n.t('errors.api.resource.resourceNotFound', {
|
||||
resource: 'Member'
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8,28 +8,6 @@ const signupEmail = require('./emails/signup');
|
|||
const subscribeEmail = require('./emails/subscribe');
|
||||
const config = require('./config');
|
||||
|
||||
async function createMember({email, name, note}, options = {}) {
|
||||
const model = await models.Member.add({
|
||||
email,
|
||||
name: name || null,
|
||||
note: note || null
|
||||
});
|
||||
const member = model.toJSON(options);
|
||||
return member;
|
||||
}
|
||||
|
||||
async function getMember(data, options = {}) {
|
||||
if (!data.email && !data.id && !data.uuid) {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
const model = await models.Member.findOne(data, options);
|
||||
if (!model) {
|
||||
return null;
|
||||
}
|
||||
const member = model.toJSON(options);
|
||||
return member;
|
||||
}
|
||||
|
||||
async function setMetadata(module, metadata) {
|
||||
if (module !== 'stripe') {
|
||||
return;
|
||||
|
@ -72,42 +50,6 @@ async function getMetadata(module, member) {
|
|||
};
|
||||
}
|
||||
|
||||
async function updateMember({name, note, subscribed}, options = {}) {
|
||||
const attrs = {
|
||||
name: name || null,
|
||||
note: note || null
|
||||
};
|
||||
|
||||
if (subscribed !== undefined) {
|
||||
attrs.subscribed = subscribed;
|
||||
}
|
||||
|
||||
const model = await models.Member.edit(attrs, options);
|
||||
|
||||
const member = model.toJSON(options);
|
||||
return member;
|
||||
}
|
||||
|
||||
function deleteMember(options) {
|
||||
options = options || {};
|
||||
return models.Member.destroy(options).catch(models.Member.NotFoundError, () => {
|
||||
throw new common.errors.NotFoundError({
|
||||
message: common.i18n.t('errors.api.resource.resourceNotFound', {
|
||||
resource: 'Member'
|
||||
})
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function listMembers(options) {
|
||||
return models.Member.findPage(options).then((models) => {
|
||||
return {
|
||||
members: models.data.map(model => model.toJSON(options)),
|
||||
meta: models.meta
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const ghostMailer = new mail.GhostMailer();
|
||||
|
||||
module.exports = createApiInstance;
|
||||
|
@ -225,11 +167,7 @@ function createApiInstance() {
|
|||
},
|
||||
setMetadata,
|
||||
getMetadata,
|
||||
createMember,
|
||||
updateMember,
|
||||
getMember,
|
||||
deleteMember,
|
||||
listMembers,
|
||||
memberModel: models.Member,
|
||||
logger: common.logging
|
||||
});
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
"dependencies": {
|
||||
"@nexes/nql": "0.3.0",
|
||||
"@tryghost/helpers": "1.1.19",
|
||||
"@tryghost/members-api": "0.9.0",
|
||||
"@tryghost/members-api": "0.10.0",
|
||||
"@tryghost/members-ssr": "0.7.3",
|
||||
"@tryghost/social-urls": "0.1.4",
|
||||
"@tryghost/string": "^0.1.3",
|
||||
|
|
|
@ -237,10 +237,10 @@
|
|||
jsonwebtoken "^8.5.1"
|
||||
lodash "^4.17.15"
|
||||
|
||||
"@tryghost/members-api@0.9.0":
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-api/-/members-api-0.9.0.tgz#8fc227b9b6f536093f67a68d47687830de2c1748"
|
||||
integrity sha512-8nfaI2CAi+B3DToLrxUwSYVaBX/gX+mLnBJW3cIml/sBXokno4Sr08HX7OpTnTNXLroLHa/+QYivhtMRAOxjQQ==
|
||||
"@tryghost/members-api@0.10.0":
|
||||
version "0.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/members-api/-/members-api-0.10.0.tgz#4666faa6e215255ac682a45edbdee8d95aa99175"
|
||||
integrity sha512-Y3vVQnrB0EHmYSxGNnm7XLXJcleUlYxW6fdjv7663D3FjxM0s4+PkDpEPA/JW18Z9jUS1zOvZoASNM0WTA0ddw==
|
||||
dependencies:
|
||||
"@tryghost/magic-link" "^0.3.2"
|
||||
bluebird "^3.5.4"
|
||||
|
|
Loading…
Add table
Reference in a new issue