|
|
|
@ -1086,6 +1086,51 @@ app.get(PREFIX+"/test/getBuild",(req,res)=>{ |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
app.get(PREFIX+"/getBuilds",(req,res)=>{ |
|
|
|
|
|
|
|
|
|
function FilterQuery(filter_type,filter){ |
|
|
|
|
function ConvertFilterType(fil) { |
|
|
|
|
switch(fil) { |
|
|
|
|
case "author":{return "creator"}break; |
|
|
|
|
case "build":{return "build_name"}break; |
|
|
|
|
case "editors_choice":{return "editors_choice"}break; |
|
|
|
|
case "class1":{return "class1"}break; |
|
|
|
|
case "class2":{return "class2"}break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return `${filter_type?`where ${ConvertFilterType(filter_type)} ilike '%${filter}%'`:""}` |
|
|
|
|
} |
|
|
|
|
function SortQuery(sort_type){ |
|
|
|
|
function ConvertSortType(sor) { |
|
|
|
|
switch (sor) { |
|
|
|
|
case "date_updated":{return "last_modified"}break; |
|
|
|
|
case "alphabetical":{return "build_name"}break; |
|
|
|
|
case "date_created":{return "created_on"}break; |
|
|
|
|
case "popularity":{return "likes"}break |
|
|
|
|
case "editors_choice":{return "editors_choice"}break; |
|
|
|
|
case "author":{return "creator"}break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return `${sort_type:""}` |
|
|
|
|
} |
|
|
|
|
function OffsetQuery(page){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//No args gets recent 20 builds.
|
|
|
|
|
//sort_type can be date_updated(default), alphabetical, date_created, popularity, editors_choice, author.
|
|
|
|
|
//filter_type can be author,build,editors_choice,class1,class2
|
|
|
|
|
//filter is the actual contents of the filter.
|
|
|
|
|
//page can be a number, a new page is generated every 20 builds.
|
|
|
|
|
db.query('select * from builds '+FilterQuery(req.query.filter_type,req.query.filter)+' '+SortQuery(req.query.sort_type)+' desc limit 20 '+OffsetQuery(req.query.page),[]) |
|
|
|
|
.then((data)=>{ |
|
|
|
|
res.status(200).json(data.rows[0]) |
|
|
|
|
}) |
|
|
|
|
.catch((err)=>{ |
|
|
|
|
res.status(500).send(err.message) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
//Generates our table schema:
|
|
|
|
|
ENDPOINTDATA.forEach((endpoint)=>{ |
|
|
|
|
console.log(endpoint.endpoint+":\n\t"+endpoint.requiredfields.join('\t')+(endpoint.optionalfields.length>0?"\t":"")+endpoint.optionalfields.join("\t")) |
|
|
|
|