0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-11 02:12:21 -05:00

🔥 Removed v0.1 leftover code in model layer (#11107)

no issue

- Removed redundant model code in users
- Removed v0.1 specific attribute removal on model layer for post
- Removed property deletions comments handled in serialization layer
- Removed unused token.added listener. users.last_seen is  populated on middleware layer when a new access token is created
- Removed unneeded test for setting last_seen in users
This commit is contained in:
Naz Gargol 2019-09-12 17:39:16 +02:00 committed by GitHub
parent d645afb416
commit 0306c397d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 0 additions and 85 deletions

View file

@ -18,10 +18,7 @@ const tag = (attrs, frame) => {
}
}
// Already deleted in model.toJSON, but leaving here so that we can clean that up when we deprecate v0.1
delete attrs.parent_id;
// @NOTE: unused fields
delete attrs.parent;
return attrs;
@ -29,7 +26,6 @@ const tag = (attrs, frame) => {
const author = (attrs, frame) => {
if (localUtils.isContentAPI(frame)) {
// Already deleted in model.toJSON, but leaving here so that we can clean that up when we deprecate v0.1
delete attrs.created_at;
delete attrs.updated_at;
delete attrs.last_seen;

View file

@ -18,10 +18,7 @@ const tag = (attrs, frame) => {
}
}
// Already deleted in model.toJSON, but leaving here so that we can clean that up when we deprecate v0.1
delete attrs.parent_id;
// @NOTE: unused fields
delete attrs.parent;
return attrs;
@ -29,7 +26,6 @@ const tag = (attrs, frame) => {
const author = (attrs, frame) => {
if (localUtils.isContentAPI(frame)) {
// Already deleted in model.toJSON, but leaving here so that we can clean that up when we deprecate v0.1
delete attrs.created_at;
delete attrs.updated_at;
delete attrs.last_seen;

View file

@ -4,20 +4,6 @@ var moment = require('moment-timezone'),
common = require('../../lib/common'),
sequence = require('../../lib/promise/sequence');
/**
* @TODO REMOVE WHEN v0.1 IS DROPPED
* WHEN access token is created we will update last_seen for user.
*/
common.events.on('token.added', function (tokenModel) {
models.User.findOne({id: tokenModel.get('user_id')})
.then(function (user) {
return user.updateLastSeen();
})
.catch(function (err) {
common.logging.error(new common.errors.GhostError({err: err, level: 'critical'}));
});
});
/**
* WHEN timezone changes, we will:
* - reschedule all scheduled posts

View file

@ -572,13 +572,6 @@ Post = ghostBookshelf.Model.extend({
// CASE: never expose the revisions
delete attrs.mobiledoc_revisions;
// expose canonical_url only for API v2 calls
// NOTE: this can be removed when API v0.1 is dropped. A proper solution for field
// differences on resources like this would be an introduction of API output schema
if (!_.get(unfilteredOptions, 'extraProperties', []).includes('canonical_url')) {
delete attrs.canonical_url;
}
// If the current column settings allow it...
if (!options.columns || (options.columns && options.columns.indexOf('primary_tag') > -1)) {
// ... attach a computed property of primary_tag which is the first tag if it is public, else null

View file

@ -63,10 +63,6 @@ Tag = ghostBookshelf.Model.extend({
var options = Tag.filterOptions(unfilteredOptions, 'toJSON'),
attrs = ghostBookshelf.Model.prototype.toJSON.call(this, options);
// @NOTE: this serialization should be moved into api layer, it's not being moved as it's not used
attrs.parent = attrs.parent || attrs.parent_id;
delete attrs.parent_id;
return attrs;
},

View file

@ -223,17 +223,6 @@ User = ghostBookshelf.Model.extend({
delete attrs.email;
}
// @TODO remove this when we remove v0.1 API as its handled in serialization for v2
// We don't expose these fields when fetching data via the public API.
if (options && options.context && options.context.public) {
delete attrs.created_at;
delete attrs.created_by;
delete attrs.updated_at;
delete attrs.updated_by;
delete attrs.last_seen;
delete attrs.status;
}
return attrs;
},

View file

@ -1,41 +0,0 @@
var should = require('should'),
sinon = require('sinon'),
rewire = require('rewire'),
common = require('../../../../server/lib/common'),
Models = require('../../../../server/models');
describe('Models: listeners', function () {
var eventsToRemember = {};
const emit = (event, data) => eventsToRemember[event](data);
before(function () {
sinon.stub(common.events, 'on').callsFake(function (name, callback) {
eventsToRemember[name] = callback;
});
rewire('../../../../server/models/base/listeners');
Models.init();
});
afterEach(function () {
sinon.restore();
});
describe('on token added', function () {
it('calls updateLastSeen on the user when the token.added event is emited', function (done) {
const userId = 1;
const user = Models.User.forge({id: 1});
sinon.stub(Models.User, 'findOne').withArgs({id: userId}).resolves(user);
const updateLastSeenSpy = sinon.stub(user, 'updateLastSeen').callsFake(function () {
updateLastSeenSpy.calledOnce.should.be.true();
done();
});
const fakeToken = {
get: sinon.stub().withArgs('user_id').returns(userId)
};
emit('token.added', fakeToken);
});
});
});