feat(api): add version endpoint
This commit is contained in:
parent
5dc35344a1
commit
adc8ccc391
@ -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) {
|
||||||
|
35
packages/api/src/routes/v6/version.ts
Normal file
35
packages/api/src/routes/v6/version.ts
Normal 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();
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user