feat(api): add version endpoint

This commit is contained in:
wanhose 2024-11-10 23:13:32 +01:00
parent 5dc35344a1
commit adc8ccc391
2 changed files with 37 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import v5ReportRoutes from 'routes/v5/report';
import v6DataRoutes from 'routes/v6/data'; import v6DataRoutes from 'routes/v6/data';
import v6IssuesRoutes from 'routes/v6/issues'; import v6IssuesRoutes from 'routes/v6/issues';
import v6ReportRoutes from 'routes/v6/report'; import v6ReportRoutes from 'routes/v6/report';
import v6VersionRoutes from 'routes/v6/version';
import environment from 'services/environment'; import environment from 'services/environment';
const server = fastify({ logger: true }); const server = fastify({ logger: true });
@ -45,6 +46,7 @@ server.register(v5ReportRoutes, { prefix: '/rest/v5' });
server.register(v6DataRoutes, { prefix: '/rest/v6' }); server.register(v6DataRoutes, { prefix: '/rest/v6' });
server.register(v6IssuesRoutes, { prefix: '/rest/v6' }); server.register(v6IssuesRoutes, { prefix: '/rest/v6' });
server.register(v6ReportRoutes, { prefix: '/rest/v6' }); server.register(v6ReportRoutes, { prefix: '/rest/v6' });
server.register(v6VersionRoutes, { prefix: '/rest/v6' });
server.listen({ host: '0.0.0.0', port: environment.port }, (error, address) => { server.listen({ host: '0.0.0.0', port: environment.port }, (error, address) => {
if (error) { if (error) {

View File

@ -0,0 +1,35 @@
import { FastifyInstance, RouteShorthandOptions } from 'fastify';
import fetch from 'node-fetch';
import environment from 'services/environment';
import { RATE_LIMIT_10_PER_MIN } from 'services/rateLimit';
export default (server: FastifyInstance, _options: RouteShorthandOptions, done: () => void) => {
server.get(
'/version/',
{
config: {
rateLimit: RATE_LIMIT_10_PER_MIN,
},
},
async (_request, reply) => {
try {
const manifest = `${environment.gitea.raw}/packages/browser-extension/src/manifest.json`;
const options = { headers: { 'Cache-Control': 'no-cache' } };
const response = await fetch(manifest, options);
const { version } = await response.json();
reply.send({
data: version,
success: true,
});
} catch (error) {
reply.send({
errors: [error.message],
success: false,
});
}
}
);
done();
};