66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
import { authGuard } from '../authGuard.js'
|
|
|
|
export const mappings = [
|
|
{ method: 'get', url:'/agent-types/:family', handler: 'getAgentTypes', middlewares: [authGuard]},
|
|
{ method: 'get', url:'/agent-sprites/:group', handler: 'getAgentSprites', middlewares: [authGuard]},
|
|
{ method: 'get', url:'/agent/:id', handler: 'getAgentProps', middlewares: [authGuard]},
|
|
]
|
|
|
|
export const methods = {
|
|
async getAgentTypes(req, res) {
|
|
let results
|
|
if(req.params.family){
|
|
results = await this.db.execute(`
|
|
SELECT *
|
|
FROM p42SIM.agent_types
|
|
WHERE atp_fam_name = ?
|
|
`, [req.params.family])
|
|
|
|
} else {
|
|
results = await this.db.execute(`SELECT * FROM p42SIM.agent_types`, [])
|
|
}
|
|
|
|
this.ok(req, res, {
|
|
agentTypes : results
|
|
})
|
|
},
|
|
|
|
async getAgentSprites(req, res) { //TODO implement group & family filtering
|
|
const results = await this.db.execute(`
|
|
SELECT atp_id, atp_name, asp_3d
|
|
FROM p42SIM.agent_types
|
|
LEFT JOIN p42GUI.agents_sprites on asp_atp_id = atp_id
|
|
WHERE asp_group = ?`, [req.params.group])
|
|
const fullObj = {}
|
|
for(const row of results){
|
|
fullObj[row.atp_name] = row.asp_3d
|
|
}
|
|
this.ok(req, res, {
|
|
agentSprites: results
|
|
})
|
|
},
|
|
|
|
async getAgentProps(req, res) {
|
|
let results
|
|
if(req.params.id){
|
|
results = await this.db.execute(`
|
|
SELECT *
|
|
FROM p42SIM.agent_types
|
|
WHERE atp_id = ?
|
|
`, [req.params.id])
|
|
|
|
} else {
|
|
this.err(req, res, `Invalid request`, `Missing Agent ID`, 401)
|
|
return
|
|
}
|
|
|
|
if(results.length==0){
|
|
this.err(req, res, `Agent not found !`, `Unknown Agent ID (${req.params.id})`, 401)
|
|
return
|
|
}
|
|
|
|
this.ok(req, res, {
|
|
agentProperties : results[0]
|
|
})
|
|
},
|
|
} |