Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use(cors({
allowedOrigins: ['*.forestadmin.com'],
allowedOrigins: ['*.opendataimpactmap.org', '*.forestadmin.com'],
headers: ['Authorization', 'X-Requested-With', 'Content-Type']
}));

Expand Down
35 changes: 17 additions & 18 deletions controllers/sectorController.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ async function getOrgAgeGroupCount (parameters) {
result = result[0]['count'];
}

console.log(parameters, result);
return result;
}

Expand Down Expand Up @@ -182,23 +181,21 @@ exports.organizationSizes = async function (req, res) {
const sector = req.params.sector;

let sql = 'SELECT ' +
'size AS organization_size, ' +
'( ' +
'SELECT COUNT(p.org_name) ' +
'FROM ' +
'profile AS p, ' +
'org_size AS os, ' +
'sector AS s, ' +
'status AS st ' +
'WHERE p.sector_id = s.id ' +
'AND p.status_id = st.id ' +
'AND p.org_size_id = os.id ' +
'AND s.sector = :sector ' +
'AND os.size = org_size.size ' +
'COALESCE(size, "N/A") AS organization_size, ' +
'COUNT(*) AS organization_count ' +
'FROM profile AS p ' +
'JOIN sector AS s ' +
'ON p.sector_id = s.id ' +
'JOIN status AS st ' +
'ON p.status_id = st.id ' +
'LEFT JOIN org_size AS os ' +
'ON p.org_size_id = os.id ' +
'WHERE p.sector_id IN ( ' +
'SELECT id ' +
'FROM sector ' +
'WHERE sector = :sector) ' +
'AND st.status = "publish" ' +
') AS organization_count ' +
'FROM org_size ' +
'GROUP BY org_size.size ' +
'GROUP BY os.size ' +
'ORDER BY ' +
'CASE ' +
'WHEN size = "1 to 10" ' +
Expand All @@ -211,6 +208,8 @@ exports.organizationSizes = async function (req, res) {
'THEN 4 ' +
'WHEN size = "1000+" ' +
'THEN 5 ' +
'WHEN size IS NULL ' +
'THEN 6 ' +
'END';

let result = await sequelize.query(sql, {
Expand Down Expand Up @@ -360,4 +359,4 @@ exports.useCases = async function (req, res) {
console.error(err);
res.status(500).send();
}
};
};
29 changes: 29 additions & 0 deletions controllers/useCaseController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
'use strict';
const models = require('../models');
const sequelize = models.sequelize;

exports.allUseCases = async function (req, res) {
try {
let result = await models.use_case.findAll({
include: [
{
model: models.country,
include: [
models.region,
],
},
{
model: models.sector,
},
],
order: [
['name', 'ASC'],
],
});

res.send(result);
} catch (err) {
console.error(err);
res.status(500).send();
}
};
7 changes: 5 additions & 2 deletions models/category.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('category', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
category: {
type: DataTypes.STRING,
},
}, {
tableName: 'category',

timestamps: false,

});

Model.associate = (models) => {
Expand Down
42 changes: 42 additions & 0 deletions models/contact.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('contact', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
profile_id: {
type: DataTypes.INTEGER,
},
firstname: {
type: DataTypes.STRING,
},
lastname: {
type: DataTypes.STRING,
},
title: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
},
phone: {
type: DataTypes.STRING,
},
}, {
tableName: 'contact',
underscored: true,
timestamps: false,
});

Model.associate = (models) => {
Model.belongsTo(models.profile, {
foreignKey: 'profile_id',
});
};

return Model;
};

5 changes: 5 additions & 0 deletions models/country.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('country', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
region_id: {
type: DataTypes.INTEGER,
},
Expand Down
7 changes: 5 additions & 2 deletions models/country_count.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('country_count', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
count: {
type: DataTypes.STRING,
},
}, {
tableName: 'country_count',

timestamps: false,

});

Model.associate = (models) => {
Expand Down
6 changes: 5 additions & 1 deletion models/data_application.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('data_application', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
profile_id: {
type: DataTypes.INTEGER,
primaryKey: true
},
advocacy: {
type: DataTypes.BOOLEAN,
Expand Down
16 changes: 14 additions & 2 deletions models/data_source.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('data_source', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
profile_id: {
type: DataTypes.INTEGER,
primaryKey: true
},
country_id: {
type: DataTypes.INTEGER,
Expand All @@ -22,10 +26,18 @@ module.exports = (sequelize, DataTypes) => {
tableName: 'data_source',
underscored: true,
timestamps: false,

});

Model.associate = (models) => {
Model.belongsTo(models.profile, {
foreignKey: 'profile_id',
});
Model.belongsTo(models.country, {
foreignKey: 'country_id',
});
Model.belongsTo(models.data_type, {
foreignKey: 'data_type_id',
});
};

return Model;
Expand Down
6 changes: 5 additions & 1 deletion models/data_type.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('data_type', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
data_type: {
type: DataTypes.STRING,
},
Expand All @@ -12,7 +17,6 @@ module.exports = (sequelize, DataTypes) => {
tableName: 'data_type',
underscored: true,
timestamps: false,

});

Model.associate = (models) => {
Expand Down
6 changes: 5 additions & 1 deletion models/income_level.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('income_level', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
income_level: {
type: DataTypes.STRING,
},
Expand All @@ -12,7 +17,6 @@ module.exports = (sequelize, DataTypes) => {
tableName: 'income_level',
underscored: true,
timestamps: false,

});

Model.associate = (models) => {
Expand Down
5 changes: 5 additions & 0 deletions models/location.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('location', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
country_id: {
type: DataTypes.INTEGER,
},
Expand Down
7 changes: 5 additions & 2 deletions models/org_size.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('org_size', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
size: {
type: DataTypes.STRING,
},
}, {
tableName: 'org_size',

timestamps: false,

});

Model.associate = (models) => {
Expand Down
7 changes: 5 additions & 2 deletions models/org_type.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('org_type', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
type: {
type: DataTypes.STRING,
},
Expand All @@ -10,9 +15,7 @@ module.exports = (sequelize, DataTypes) => {
},
}, {
tableName: 'org_type',

timestamps: false,

});

Model.associate = (models) => {
Expand Down
25 changes: 18 additions & 7 deletions models/profile.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

module.exports = (sequelize, DataTypes) => {
var Model = sequelize.define('profile', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
location_id: {
type: DataTypes.INTEGER,
},
Expand Down Expand Up @@ -44,6 +49,12 @@ module.exports = (sequelize, DataTypes) => {
org_profile_source: {
type: DataTypes.STRING,
},
org_profile_year: {
type: DataTypes.INTEGER,
},
org_year_founded: {
type: DataTypes.INTEGER,
},
org_url: {
type: DataTypes.STRING,
},
Expand All @@ -64,25 +75,25 @@ module.exports = (sequelize, DataTypes) => {

Model.associate = (models) => {
Model.belongsTo(models.location, {
foreignKey: 'location_id'
foreignKey: 'location_id',
});
Model.belongsTo(models.sector, {
foreignKey: 'sector_id'
foreignKey: 'sector_id',
});
Model.belongsTo(models.org_size, {
foreignKey: 'org_size_id'
foreignKey: 'org_size_id',
});
Model.belongsTo(models.org_type, {
foreignKey: 'org_type_id'
foreignKey: 'org_type_id',
});
Model.belongsTo(models.status, {
foreignKey: 'status_id'
foreignKey: 'status_id',
});
Model.belongsTo(models.category, {
foreignKey: 'category_id'
foreignKey: 'category_id',
});
Model.belongsTo(models.country_count, {
foreignKey: 'country_count_id'
foreignKey: 'country_count_id',
});
};

Expand Down
Loading