diff --git a/apps/server/src/api/client/routes/workspaces/files/file-upload-tus.ts b/apps/server/src/api/client/routes/workspaces/files/file-upload-tus.ts index 8f53aa40..c8bde00d 100644 --- a/apps/server/src/api/client/routes/workspaces/files/file-upload-tus.ts +++ b/apps/server/src/api/client/routes/workspaces/files/file-upload-tus.ts @@ -15,6 +15,7 @@ import { redis } from '@colanode/server/data/redis'; import { s3Config } from '@colanode/server/data/storage'; import { config } from '@colanode/server/lib/config'; import { fetchCounter } from '@colanode/server/lib/counters'; +import { generateUrl } from '@colanode/server/lib/fastify'; import { buildFilePath, deleteFile } from '@colanode/server/lib/files'; import { mapNode, updateNode } from '@colanode/server/lib/nodes'; import { RedisKvStore } from '@colanode/server/lib/tus/redis-kv'; @@ -94,6 +95,10 @@ export const fileUploadTusRoute: FastifyPluginCallbackZod = ( } const path = buildFilePath(workspaceId, fileId, file.attributes); + const url = generateUrl( + request, + `/client/v1/workspaces/${workspaceId}/files/${fileId}/tus` + ); const tusServer = new Server({ path: '/tus', @@ -284,8 +289,8 @@ export const fileUploadTusRoute: FastifyPluginCallbackZod = ( body: JSON.stringify({ uploadId }), }; }, - generateUrl(_req, options) { - return `${options.proto}://${options.host}/client/v1/workspaces/${workspaceId}/files/${fileId}/tus`; + generateUrl() { + return url; }, getFileIdFromRequest() { return path; diff --git a/apps/server/src/api/home.ts b/apps/server/src/api/home.ts index ddbd08c1..cf1d3944 100644 --- a/apps/server/src/api/home.ts +++ b/apps/server/src/api/home.ts @@ -1,6 +1,7 @@ import { FastifyPluginCallback } from 'fastify'; import { config } from '@colanode/server/lib/config'; +import { generateUrl } from '@colanode/server/lib/fastify'; import { homeTemplate } from '@colanode/server/templates'; export const homeRoute: FastifyPluginCallback = (instance, _, done) => { @@ -8,16 +9,7 @@ export const homeRoute: FastifyPluginCallback = (instance, _, done) => { method: 'GET', url: '/', handler: async (request, reply) => { - const port = - request.port && request.port != 80 && request.port != 443 - ? `:${request.port}` - : ''; - - const prefix = config.server.pathPrefix - ? `/${config.server.pathPrefix}` - : ''; - - const configUrl = `${request.protocol}://${request.hostname}${port}${prefix}/config`; + const configUrl = generateUrl(request, '/config'); const template = homeTemplate({ name: config.server.name, diff --git a/apps/server/src/lib/fastify.ts b/apps/server/src/lib/fastify.ts new file mode 100644 index 00000000..822265e4 --- /dev/null +++ b/apps/server/src/lib/fastify.ts @@ -0,0 +1,14 @@ +import { FastifyRequest } from 'fastify'; + +import { config } from './config'; + +export const generateUrl = (request: FastifyRequest, path: string) => { + const port = + request.port && request.port != 80 && request.port != 443 + ? `:${request.port}` + : ''; + + const prefix = config.server.pathPrefix ? `/${config.server.pathPrefix}` : ''; + + return `${request.protocol}://${request.hostname}${port}${prefix}${path}`; +};