mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-23 10:53:34 +03:00
6e075c78bf
refs https://linear.app/tryghost/issue/CORE-104/decouple-frontend-routing-events-from-urlserver-events - URL module is part of the backend heavily dependent on the model and fits perfectly here. Frontend should get the data it needs by passing a URL manager instance to it
142 lines
3.9 KiB
JavaScript
142 lines
3.9 KiB
JavaScript
/*
|
|
* These are the default resources and filters.
|
|
* They contain minimum filters for public accessibility of resources.
|
|
*/
|
|
|
|
module.exports = [
|
|
{
|
|
type: 'posts',
|
|
modelOptions: {
|
|
modelName: 'Post',
|
|
filter: 'status:published+type:post',
|
|
exclude: [
|
|
'title',
|
|
'mobiledoc',
|
|
'html',
|
|
'plaintext',
|
|
// @TODO: https://github.com/TryGhost/Ghost/issues/10335
|
|
// 'page',
|
|
'status',
|
|
'amp',
|
|
'codeinjection_head',
|
|
'codeinjection_foot',
|
|
'meta_title',
|
|
'meta_description',
|
|
'custom_excerpt',
|
|
'og_image',
|
|
'og_title',
|
|
'og_description',
|
|
'twitter_image',
|
|
'twitter_title',
|
|
'twitter_description',
|
|
'custom_template',
|
|
'locale'
|
|
],
|
|
withRelated: ['tags', 'authors'],
|
|
withRelatedPrimary: {
|
|
primary_tag: 'tags',
|
|
primary_author: 'authors'
|
|
},
|
|
withRelatedFields: {
|
|
tags: ['tags.id', 'tags.slug'],
|
|
authors: ['users.id', 'users.slug']
|
|
}
|
|
},
|
|
events: {
|
|
add: 'post.published',
|
|
update: 'post.published.edited',
|
|
remove: 'post.unpublished'
|
|
}
|
|
},
|
|
{
|
|
type: 'pages',
|
|
modelOptions: {
|
|
modelName: 'Post',
|
|
exclude: [
|
|
'title',
|
|
'mobiledoc',
|
|
'html',
|
|
'plaintext',
|
|
// @TODO: https://github.com/TryGhost/Ghost/issues/10335
|
|
// 'page',
|
|
// 'status',
|
|
'amp',
|
|
'codeinjection_head',
|
|
'codeinjection_foot',
|
|
'meta_title',
|
|
'meta_description',
|
|
'custom_excerpt',
|
|
'og_image',
|
|
'og_title',
|
|
'og_description',
|
|
'twitter_image',
|
|
'twitter_title',
|
|
'twitter_description',
|
|
'custom_template',
|
|
'locale',
|
|
'tags',
|
|
'authors',
|
|
'primary_tag',
|
|
'primary_author'
|
|
],
|
|
filter: 'status:published+type:page'
|
|
},
|
|
events: {
|
|
add: 'page.published',
|
|
update: 'page.published.edited',
|
|
remove: 'page.unpublished'
|
|
}
|
|
},
|
|
{
|
|
type: 'tags',
|
|
keep: ['id', 'slug'],
|
|
modelOptions: {
|
|
modelName: 'Tag',
|
|
exclude: [
|
|
'description',
|
|
'meta_title',
|
|
'meta_description',
|
|
'parent_id'
|
|
],
|
|
filter: 'visibility:public',
|
|
shouldHavePosts: {
|
|
joinTo: 'tag_id',
|
|
joinTable: 'posts_tags'
|
|
}
|
|
},
|
|
events: {
|
|
add: 'tag.added',
|
|
update: ['tag.edited', 'tag.attached', 'tag.detached'],
|
|
remove: 'tag.deleted'
|
|
}
|
|
},
|
|
{
|
|
type: 'authors',
|
|
modelOptions: {
|
|
modelName: 'User',
|
|
exclude: [
|
|
'bio',
|
|
'website',
|
|
'location',
|
|
'facebook',
|
|
'twitter',
|
|
'locale',
|
|
'accessibility',
|
|
'meta_title',
|
|
'meta_description',
|
|
'tour'
|
|
],
|
|
filter: 'visibility:public',
|
|
shouldHavePosts: {
|
|
joinTo: 'author_id',
|
|
joinTable: 'posts_authors'
|
|
}
|
|
},
|
|
events: {
|
|
add: 'user.activated',
|
|
update: ['user.activated.edited', 'user.attached', 'user.detached'],
|
|
remove: 'user.deleted'
|
|
}
|
|
}
|
|
];
|