diff --git a/Dockerfile.test b/Dockerfile.test new file mode 100644 index 0000000..4f86e99 --- /dev/null +++ b/Dockerfile.test @@ -0,0 +1,5 @@ +FROM node:20-alpine +WORKDIR /app +COPY nodejs/package*.json ./ +RUN ls -la +RUN npm ci --omit=dev diff --git a/nodejs/models/token.js b/nodejs/models/token.js index 07e17ec..03fab11 100644 --- a/nodejs/models/token.js +++ b/nodejs/models/token.js @@ -21,6 +21,21 @@ class Token extends Model { return false } } + + static async get(pk, ...args) { + const result = await super.get(pk, ...args); + if (!result) { + const error = new Error('EntryNotFound'); + error.name = 'EntryNotFound'; + error.status = 404; + throw error; + } + return result; + } + + async remove() { + return this.delete(); + } } class AuthToken extends Token{ diff --git a/nodejs/routes/token.js b/nodejs/routes/token.js index d46971a..428b7e0 100644 --- a/nodejs/routes/token.js +++ b/nodejs/routes/token.js @@ -23,9 +23,11 @@ router.get('/', async function(req, res, next){ router.get('/:name', async function(req, res, next){ try{ - return res.json({ - results: await tokens[req.params.name].list({detail: !!req.query.detail}) - }); + let results = await tokens[req.params.name].list(); + if (!req.query.detail) { + results = results.map(r => r.token || r.id); + } + return res.json({ results }); }catch(error){ next(error); }