313 lines
12 KiB
JavaScript
313 lines
12 KiB
JavaScript
const { Op } = require("sequelize");
|
|
const express = require('express');
|
|
const campaigns = require('../campaigns');
|
|
|
|
module.exports = function (options) {
|
|
const db = options.db;
|
|
var router = express.Router();
|
|
|
|
router.route('/')
|
|
.get(function(request, response, next) {
|
|
db.Entity.findAll({
|
|
where: {
|
|
[Op.or]: [
|
|
{ type: "individual" },
|
|
{ type: "organization" }
|
|
]
|
|
},
|
|
limit: 10
|
|
}).then(entities => {
|
|
response.display("entities", {
|
|
user: request.user,
|
|
pageTitle: "Entities - Mantra",
|
|
entities: entities
|
|
})
|
|
})
|
|
|
|
})
|
|
|
|
router.route('/:name')
|
|
.get(function(request, response, next) {
|
|
db.Entity.findOne({
|
|
where: {
|
|
name: request.params.name
|
|
},
|
|
// TODO: add counts here...
|
|
}).then(entity => {
|
|
response.display("entity", {
|
|
user: request.user,
|
|
pageTitle: "Entity - Mantra",
|
|
entity: entity
|
|
})
|
|
})
|
|
})
|
|
|
|
router.route('/:name/artifacts')
|
|
.get(function(request, response, next) {
|
|
db.Artifact.findAll({
|
|
include: [
|
|
{
|
|
association: db.Artifact.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}).then(artifacts => {
|
|
response.display("entity-artifacts", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} artifacts - Mantra`,
|
|
artifacts: artifacts,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/projects')
|
|
.get(function(request, response, next) {
|
|
db.Project.findAll({
|
|
include: [
|
|
{
|
|
association: db.Project.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}).then(projects => {
|
|
response.display("entity-projects", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} projects - Mantra`,
|
|
projects: projects,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/pledges')
|
|
.get(function(request, response, next) {
|
|
db.Project.findAll({
|
|
include: [
|
|
{
|
|
association: db.Project.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}).then(pledges => {
|
|
response.display("entity-pledges", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} pledges - Mantra`,
|
|
pledges: pledges,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/campaigns')
|
|
.get(function(request, response, next) {
|
|
db.Campaign.findAll({
|
|
include: [
|
|
{
|
|
association: db.Campaign.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}).then(campaigns => {
|
|
response.display("entity-campaigns", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} campaigns - Mantra`,
|
|
campaigns: campaigns,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/translations')
|
|
.get(function(request, response, next) {
|
|
db.TranslationArtifactVersion.findAll({
|
|
include: [
|
|
{
|
|
association: db.TranslationArtifactVersion.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
association: db.TranslationArtifactVersion.ArtifactVersion,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.ArtifactVersion.Artifact,
|
|
required: true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}).then(translationArtifactVersions => {
|
|
response.display("entity-translation-artifact-versions", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} translations - Mantra`,
|
|
translationArtifactVersions: translationArtifactVersions,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/translation-campaigns')
|
|
.get(function(request, response, next) {
|
|
db.TranslationArtifactVersionCampaign.findAll({
|
|
include: [
|
|
{
|
|
association: db.TranslationArtifactVersionCampaign.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
]
|
|
}).then(translationArtifactVersionCampaigns => {
|
|
response.display("entity-translation-artifact-version-campaigns", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} translation campaigns - Mantra`,
|
|
translationArtifactVersionCampaigns: translationArtifactVersionCampaigns,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
|
|
router.route('/:name/translation-pledges')
|
|
.get(function(request, response, next) {
|
|
db.TranslationArtifactVersionPledge.findAll({
|
|
include: [
|
|
{
|
|
association: db.TranslationArtifactVersionPledge.Owner,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.Owner.OwnerEntities,
|
|
required: true,
|
|
include: [
|
|
{
|
|
association: db.OwnerEntity.Entity,
|
|
require: true,
|
|
where: {
|
|
name: request.params.name
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
]
|
|
}).then(translationArtifactVersionPledges => {
|
|
response.display("entity-translation-artifact-version-pledges", {
|
|
user: request.user,
|
|
pageTitle: `${request.params.name} translation pledges - Mantra`,
|
|
translationArtifactVersionPledges: translationArtifactVersionPledges,
|
|
entityName: request.params.name
|
|
})
|
|
}).catch(error => {
|
|
next(error)
|
|
})
|
|
})
|
|
// router.route('/create')
|
|
// .post(function(request, response, next) {
|
|
// console.log(request.body)
|
|
// next()
|
|
// })
|
|
|
|
return router;
|
|
}; |