-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
1,669 additions
and
1,484 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
const queries = require('../model/index') | ||
const queryString = require('query-string'); | ||
|
||
exports.get = (req, response) => { | ||
var queryObj = queryString.parseUrl(req.url).query; | ||
var backgroundArr = queryObj.bg.split(","); | ||
var resourceArr = queryObj.rsc.split(","); | ||
console.log("bg Arr is", backgroundArr, "rsc Arr is", resourceArr); | ||
|
||
queries.getData(backgroundArr, resourceArr) | ||
.then( dbObj => { | ||
const resultArray = arrangeArray(dbObj.rows); | ||
console.log('resultArray', resultArray); | ||
const outArray = filterByType(resultArray); | ||
console.log('OUTPUT ARRAY', outArray); | ||
//res.render('results', {outArray}); | ||
response.send(outArray); | ||
}) | ||
.catch(err => console.log(err)); | ||
|
||
function filterByType(inArray) { | ||
const types = ['meetup', 'online course', 'article', 'classroom course']; | ||
const outArr = [] | ||
types.forEach(mytype => { | ||
//outArr[meetup]= filtered result | ||
// setting keys to values from filter function | ||
outArr[mytype] = inArray.filter(function (value) { | ||
return value.resource_type == mytype; | ||
}) | ||
}) | ||
return outArr; | ||
} | ||
//to arrange repeated resource as {resource_id='1', resource_name='codebar', direct=['age','ethnicity'], indirect=['disability']},.... | ||
function arrangeArray(inArray) { | ||
var resultArray = []; //empty array to start with | ||
for (let i = 0; i < inArray.length; i++) { | ||
if (i == 0) { | ||
//populate new resouce in our result array | ||
resultArrIndx = 0; | ||
resultArray.push({ | ||
resource_id: inArray[i].resource_id, resource_name: inArray[i].resource_name, | ||
url: inArray[i].url, resource_type: inArray[i].resource_type | ||
}); | ||
resultArray[resultArrIndx].direct = []; | ||
resultArray[resultArrIndx].indirect = []; | ||
//if incoming demo_tag_relevance is direct push it into resultArray[resultArrIndx].direct array else | ||
//push into resultArray[resultArrIndx].indirect array | ||
if (inArray[i].relevance === 'direct') { | ||
resultArray[resultArrIndx].direct.push(inArray[i].tag_name); | ||
} else { | ||
resultArray[resultArrIndx].indirect.push(inArray[i].tag_name); | ||
} | ||
resultArrIndx++; | ||
} | ||
else if (resultArray[resultArrIndx - 1].resource_id == inArray[i].resource_id) { | ||
if (inArray[i].demo_tag_relevance === 'direct') { | ||
resultArray[resultArrIndx - 1].direct.push(inArray[i].tag_name); | ||
} else { | ||
resultArray[resultArrIndx - 1].indirect.push(inArray[i].tag_name); | ||
} | ||
} | ||
else { | ||
//populate new resouce in our result array | ||
//create new key demo_tag_relevance and push {tagname:'tagname value', relevance:'rel value'} | ||
resultArray.push({ | ||
resource_id: inArray[i].resource_id, resource_name: inArray[i].resource_name, | ||
url: inArray[i].url, resource_type: inArray[i].resource_type | ||
}); | ||
resultArray[resultArrIndx].direct = []; | ||
resultArray[resultArrIndx].indirect = []; | ||
//if incoming demo_tag_relevance is direct push it into resultArray[resultArrIndx].direct array else | ||
//push into resultArray[resultArrIndx].indirect array | ||
if (inArray[i].relevance === 'direct') { | ||
resultArray[resultArrIndx].direct.push(inArray[i].tag_name); | ||
} else { | ||
resultArray[resultArrIndx].indirect.push(inArray[i].tag_name); | ||
} | ||
resultArrIndx++; | ||
} | ||
} //end of for loop | ||
|
||
return resultArray; | ||
} | ||
|
||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
const db = require("../database/db_connection"); | ||
|
||
const getData = (bgArray, rscArray) => { | ||
console.log('INPUTARR', bgArray, rscArray); | ||
var dataQuery = `select resource.resource_id ,resource.resource_name,resource.url, resource.resource_type, demographic_tag. demographic_tag_id, demographic_tag.tag_name, demographic_resource_link.relevance from resource INNER JOIN demographic_resource_link ON resource.resource_id = demographic_resource_link.link_resource_id INNER JOIN demographic_tag ON demographic_resource_link.link_demographic_tag_id = demographic_tag. demographic_tag_id WHERE (demographic_tag.tag_name='${ | ||
bgArray[0] | ||
}'`; | ||
|
||
|
||
//iterator appends users selected demographic tags | ||
for (let i = 1; i < bgArray.length; i++) { | ||
dataQuery += ` OR demographic_tag.tag_name = '${bgArray[i].trim()}'`; | ||
} | ||
|
||
dataQuery += `) AND (resource.resource_type = '${rscArray[0].trim()}'`; | ||
|
||
for (let i = 1; i < rscArray.length; i++) { | ||
dataQuery += ` OR resource.resource_type = '${rscArray[i].trim()}'`; | ||
} | ||
|
||
dataQuery += ')' | ||
|
||
console.log("DATAQUERY=", dataQuery); | ||
|
||
return new Promise((resolve, reject) => { | ||
db.query(dataQuery) | ||
.then(res => resolve(res)) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
module.exports = getData; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
const db = require("../database/db_connection.js"); | ||
|
||
const getDemoTagId = demoTag => { | ||
return new Promise((resolve, reject) => { | ||
db.query( | ||
`SELECT demographic_tag.id FROM demographic_tag WHERE tag_name = '${demoTag}'` | ||
) | ||
.then(res => resolve(res)) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
|
||
module.exports = getDemoTagId; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
const db = require("../database/db_connection"); | ||
|
||
const getResourceDetail = resourceId => { | ||
return new Promise((resolve, reject) => { | ||
db.query(`SELECT * from resource WHERE resource_id ='${resourceId}' `) | ||
.then(res => resolve(res)) | ||
.catch(err => reject(err)); | ||
}); | ||
}; | ||
|
||
module.exports = getResourceDetail; | ||
console.log("herehere"); | ||
getResourceDetail(1) | ||
.then(res => console.log(res.rows)) | ||
.catch(err => console.log(err)); | ||
|
||
// const getResourceDetail = resourceId =>{ | ||
// let query = `SELECT * FROM resource WHERE id = '${resourceId}'`; | ||
// db.query(query, (err, res) => { | ||
// if(err){ | ||
// cb('Error', null); | ||
// } else { | ||
// cb(null, res); | ||
// } | ||
// }) | ||
// } | ||
|
||
// module.exports = getResourceDetail; | ||
|
||
// console.log("HERE", getResourceDetail(1, callback())); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
const getDemoTagId = require("./get_demo_tag_id"); | ||
const getResourceDetail = require("./get_resource_detail"); | ||
const getData = require("./getData"); | ||
|
||
module.exports = { | ||
getDemoTagId: getDemoTagId, | ||
getResourceDetail: getResourceDetail, | ||
getData: getData | ||
}; |