mirror of
https://github.com/idolpx/csdb-ng.git
synced 2025-12-06 04:38:49 -05:00
55 lines
2.2 KiB
JavaScript
55 lines
2.2 KiB
JavaScript
|
|
|
|
|
|
const knex = require('knex')({
|
|
client: 'mysql',
|
|
connection: {
|
|
host: process.env.DB_HOST,
|
|
port: process.env.DB_PORT,
|
|
database: process.env.DB_DATABASE,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASS,
|
|
},
|
|
});
|
|
|
|
|
|
const resolvers = {
|
|
|
|
Query: {
|
|
search: (parent, { query }, context, info) => getResults(query),
|
|
},
|
|
|
|
}
|
|
|
|
getResults = async (query) => {
|
|
|
|
const source = 'release'
|
|
const sql = `SELECT id, name, tags FROM \`${source}\` WHERE MATCH(\`NAME\`) AGAINST('${query}' IN BOOLEAN MODE)`;
|
|
|
|
//console.log(sql);
|
|
const rows = await knex
|
|
.select('id', 'name', 'tags', 'data')
|
|
.from('release')
|
|
.whereRaw('MATCH(\`NAME\`) AGAINST(? IN BOOLEAN MODE)', query);
|
|
|
|
data = [];
|
|
try {
|
|
rows.forEach( row => {
|
|
// Add object
|
|
console.log(row.data);
|
|
data.push(JSON.parse(row.data));
|
|
})
|
|
}
|
|
catch(err) {
|
|
console.log(err);
|
|
console.log(data);
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
module.exports = { resolvers }
|
|
|
|
/*
|
|
{"ID":9333,"Name":"Revenge of the Teenage Mutant Pacman","Type":"C64 One-File Demo","ScreenShot":["/release/9/9333/9333.png"],"ReleasedBy":{"GroupIDs":[240]},"Credits":[{"CreditType":"Music","HandleIDs":[3664,945]},{"CreditType":"Code","HandleIDs":[724]},{"CreditType":"Graphics","HandleIDs":[724]}],"DownloadLinks":[{"Link":"http://csdb.dk/getinternalfile.php/829/rottmp.zip","CounterLink":"https://csdb.dk/release/download.php?id=8902","Downloads":1072,"Status":"Ok","hash":"XXH128:4b2456c54eda892829a1a533d37e3c7e","Filename":"rottmp.zip"},{"Link":"/release/9/9333/rottmp.zip","CounterLink":"","Downloads":0,"Filename":"rottmp.zip","Status":"Ok","hash":"XXH128:4b2456c54eda892829a1a533d37e3c7e"}],"Comments":[{"UserComment":[{"Date":1165276800,"Text":"Excellent Action-field-screen. This demo made a great impact on me and still has some interresting stuff that reminds me of groups like BUDS/NATO, Flash Inc, etc. This type of screens might be seen a before hand version of what we today are call LAYERS. Back then it was "action field" or something similar...","HandleID":1671}]}],"ReleaseDate":[{"Year":1992}],"CreditsHandleIDs":[3664,724,945],"SIDIDs": [21566, 14993]}
|
|
*/ |