diff --git a/src/models/article.js b/src/models/article.js
index a6d0aed..d712123 100644
--- a/src/models/article.js
+++ b/src/models/article.js
@@ -22,21 +22,8 @@ const ArticleSchema = new Schema({
});
-ArticleSchema.virtual('author_user', {
- ref: 'User',
- localField: 'author',
- foreignField: '_id',
- justOne: true
-});
-
ArticleSchema.methods.genSlug = title => title.toLowerCase().replace(/\W+/g, '-');
-ArticleSchema.pre('findOne', function (next) {
- var article = this;
- article.views++;
- next();
-});
-
ArticleSchema.pre('save', function (next) {
var article = this;
// only gen the slug if title has been modified (or is new)
diff --git a/src/routes/_layout.svelte b/src/routes/_layout.svelte
index 89909ae..6448e27 100644
--- a/src/routes/_layout.svelte
+++ b/src/routes/_layout.svelte
@@ -1,3 +1,11 @@
+
+
@@ -31,7 +36,8 @@
{#each articles as article}
-
- {article.title} by {article.author_user}
+ {article.title} by {article.author.realname}
+ ({article.views} views)
{:else}
diff --git a/src/server.js b/src/server.js
index 75b3947..17ad71c 100644
--- a/src/server.js
+++ b/src/server.js
@@ -212,7 +212,12 @@ express()
}
const article = await new Article({ html, title, image, author: req.user._id });
await article.save();
- res.redirect(`/a/${article.slug}`);
+ res.writeHead(200, {
+ 'Content-Type': 'application/json'
+ });
+ res.end(JSON.stringify({
+ slug: article.slug
+ }));
} catch (err) {
res.writeHead(500, {
'Content-Type': 'application/json'
@@ -225,7 +230,10 @@ express()
)
.get('/a/all', async function (req, res, next) {
- let articles = await Article.find().populate('author_user');
+ let articles = await Article.find().sort({ created_at: 'desc' }).populate({
+ path: 'author',
+ select: 'realname'
+ });
articles.forEach(article => {
article.slug = article.title.toLowerCase().replace(/\W+/g, '-');
article.html = article.html.replace(/^\t{3}/gm, '');
@@ -236,6 +244,22 @@ express()
res.end(JSON.stringify(articles));
})
+ .get('/me', function(req, res, next) {
+ if (req.user) {
+ res.writeHead(200, {
+ 'Content-Type': 'application/json'
+ });
+ res.end(JSON.stringify(req.user));
+ } else {
+ res.writeHead(401, {
+ 'Content-Type': 'application/json'
+ });
+ res.end(JSON.stringify({
+ message: `You are not logged in`
+ }));
+ }
+ })
+
.use(compression({ threshold: 0 }))
.use(sirv('static', { dev }))
.use(sapper.middleware({