mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-06 22:40:14 -05:00
bb6880ea49
Moving towards using an API which we can both expose publicly, and use internally. Due to issues with JugglingDB, this breaks updating contentHTML on edit Also, language, status, featured etc are all no long set / updated.
81 lines
No EOL
2.7 KiB
JavaScript
81 lines
No EOL
2.7 KiB
JavaScript
// # Ghost main app file
|
|
|
|
/*global require */
|
|
(function () {
|
|
"use strict";
|
|
|
|
// Module dependencies.
|
|
var express = require('express'),
|
|
admin = require('./core/admin/controllers'),
|
|
frontend = require('./core/frontend/controllers'),
|
|
api = require('./core/shared/api'),
|
|
flash = require('connect-flash'),
|
|
Ghost = require('./core/ghost'),
|
|
I18n = require('./core/lang/i18n'),
|
|
helpers = require('./core/frontend/helpers'),
|
|
auth,
|
|
|
|
// ## Variables
|
|
/**
|
|
* Create new Ghost object
|
|
* @type {Ghost}
|
|
*/
|
|
ghost = new Ghost();
|
|
|
|
ghost.app().configure('development', function () {
|
|
ghost.app().use(express.favicon(__dirname + '/content/images/favicon.ico'));
|
|
ghost.app().use(express.errorHandler());
|
|
ghost.app().use(I18n.load(ghost));
|
|
ghost.app().use(express.bodyParser());
|
|
ghost.app().use(express.cookieParser('try-ghost'));
|
|
ghost.app().use(express.session({ cookie: { maxAge: 60000 }}));
|
|
ghost.app().use(flash());
|
|
ghost.app().use(ghost.initTheme(ghost.app()));
|
|
});
|
|
|
|
/**
|
|
* Setup login details
|
|
* p.s. love it.
|
|
*
|
|
* @type {*}
|
|
*/
|
|
auth = express.basicAuth('ghostadmin', 'Wh0YouGonnaCall?');
|
|
|
|
helpers.loadCoreHelpers(ghost);
|
|
|
|
|
|
/**
|
|
* API routes..
|
|
* @todo auth should be public auth not user auth
|
|
*/
|
|
ghost.app().get('/api/v0.1/posts', auth, api.requestHandler(api.posts.browse));
|
|
ghost.app().get('/api/v0.1/posts/:id', auth, api.requestHandler(api.posts.read));
|
|
ghost.app().post('/api/v0.1/posts/create', auth, api.requestHandler(api.posts.add));
|
|
ghost.app().put('/api/v0.1/posts/edit', auth, api.requestHandler(api.posts.edit));
|
|
ghost.app()['delete']('/api/v0.1/posts/:id', auth, api.requestHandler(api.posts.destroy));
|
|
|
|
/**
|
|
* Admin routes..
|
|
* @todo put these somewhere in admin
|
|
*/
|
|
ghost.app().get('/ghost/editor/:id', auth, admin.editor);
|
|
ghost.app().get('/ghost/editor', auth, admin.editor);
|
|
ghost.app().get('/ghost/blog', auth, admin.blog);
|
|
ghost.app().get('/ghost/settings', auth, admin.settings);
|
|
ghost.app().get('/ghost/debug', auth, admin.debug.index);
|
|
ghost.app().get('/ghost/debug/db/delete/', auth, admin.debug.dbdelete);
|
|
ghost.app().get('/ghost/debug/db/populate/', auth, admin.debug.dbpopulate);
|
|
ghost.app().get('/ghost', auth, admin.index);
|
|
|
|
/**
|
|
* Frontend routes..
|
|
* @todo dynamic routing, homepage generator, filters ETC ETC
|
|
*/
|
|
ghost.app().get('/:slug', frontend.single);
|
|
ghost.app().get('/', frontend.homepage);
|
|
|
|
|
|
ghost.app().listen(3333, function () {
|
|
console.log("Express server listening on port " + 3333);
|
|
});
|
|
}()); |