mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 05:37:34 +03:00
77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
|
// # Ghost Data API
|
||
|
// Provides access to the data model
|
||
|
|
||
|
/**
|
||
|
* This is intended to replace the old dataProvider files and should access & manipulate the models directly
|
||
|
*/
|
||
|
|
||
|
/*global module, require */
|
||
|
(function () {
|
||
|
"use strict";
|
||
|
|
||
|
var Ghost = require('../ghost'),
|
||
|
when = require('when/node/function'),
|
||
|
_ = require('underscore'),
|
||
|
|
||
|
ghost = new Ghost(),
|
||
|
posts,
|
||
|
users,
|
||
|
requestHandler;
|
||
|
|
||
|
// # Posts
|
||
|
posts = {
|
||
|
// takes filter / pagination parameters
|
||
|
// returns a list of posts in a json response
|
||
|
browse: function (options) {
|
||
|
return when.call(ghost.dataProvider().posts.findAll);
|
||
|
},
|
||
|
// takes an identifier (id or slug?)
|
||
|
// returns a single post in a json response
|
||
|
read: function (id) {
|
||
|
return when.call(ghost.dataProvider().posts.findOne, {id: id});
|
||
|
},
|
||
|
// takes a json object with all the properties which should be updated
|
||
|
// returns the resulting post in a json response
|
||
|
edit: function (postData) {
|
||
|
console.log('edit data', postData);
|
||
|
return when.call(ghost.dataProvider().posts.edit, postData);
|
||
|
},
|
||
|
// takes a json object representing a post,
|
||
|
// returns the resulting post in a json response
|
||
|
add: function (postData) {
|
||
|
console.log('data', postData);
|
||
|
return when.call(ghost.dataProvider().posts.add, postData);
|
||
|
},
|
||
|
// takes an identifier (id or slug?)
|
||
|
// returns a json response with the id of the deleted post
|
||
|
destroy: function (id) {
|
||
|
return when.call(ghost.dataProvider().posts.destroy, id);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// # Users
|
||
|
users = {};
|
||
|
// settings: {},
|
||
|
// categories: {},
|
||
|
// post_categories: {}
|
||
|
|
||
|
|
||
|
// requestHandler
|
||
|
// decorator for api functions which are called via an HTTP request
|
||
|
// takes the API method and wraps it so that it gets data from the request and returns a sensible JSON response
|
||
|
requestHandler = function (apiMethod) {
|
||
|
return function (req, res) {
|
||
|
var options = _.extend(req.body, req.params);
|
||
|
return apiMethod(options).then(function (result) {
|
||
|
res.json(result);
|
||
|
}, function (error) {
|
||
|
res.json(400, {error: error});
|
||
|
});
|
||
|
};
|
||
|
};
|
||
|
|
||
|
|
||
|
module.exports.posts = posts;
|
||
|
module.exports.users = users;
|
||
|
module.exports.requestHandler = requestHandler;
|
||
|
}());
|