diff options
| -rw-r--r-- | src/index.ts | 3 | ||||
| -rw-r--r-- | src/metadata.ts | 8 | ||||
| -rw-r--r-- | src/routes.test.ts | 6 | ||||
| -rw-r--r-- | src/routes.ts | 4 |
4 files changed, 15 insertions, 6 deletions
diff --git a/src/index.ts b/src/index.ts index caa4235..baeecb4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -19,12 +19,13 @@ const MONGO_URI = configOrError("MONGO_URI"); const TARGET_URL = process.env.TARGET_URL ?? "http://localhost:3000"; const PUBLIC_PATH = path.join(__dirname, "..", "public"); const HOST_DIR = configOrError("HOST_DIR"); +const TOKEN = process.env.TOKEN ?? ""; const logger = winston.createLogger(loggerConfig("ROOT")); handleStartup(MONGO_URI, HOST_DIR, PUBLIC_PATH, TARGET_URL).then(mongo => { const app: express.Application = express(); - const metadata = new Metadata(mongo.db(MONGO_DB)); + const metadata = new Metadata(mongo.db(MONGO_DB), TOKEN); app.use( expressWinston.logger({ diff --git a/src/metadata.ts b/src/metadata.ts index f09f2b3..7d983b4 100644 --- a/src/metadata.ts +++ b/src/metadata.ts @@ -29,9 +29,15 @@ const logger = winston.createLogger(loggerConfig("META")); class Metadata { database: Db; + token: string; - constructor(client: Db) { + constructor(client: Db, token: string) { this.database = client; + this.token = token; + } + + getToken(): string { + return this.token; } async getHeadCommit( diff --git a/src/routes.test.ts b/src/routes.test.ts index c5cc9c0..11f186a 100644 --- a/src/routes.test.ts +++ b/src/routes.test.ts @@ -35,11 +35,14 @@ import { BranchNotFoundError } from "./errors"; type MetadataMockType = { database: Db; + token: string; getHeadCommit: jest.Mock; + getToken: jest.Mock; updateBranch: jest.Mock; createRepository: jest.Mock; }; +const TOKEN = "THISISCORRECT"; const mock = ( headCommit: jest.Mock = jest.fn( () => new Promise(solv => solv("testcommit")) @@ -47,6 +50,8 @@ const mock = ( updateBranch: jest.Mock = jest.fn(() => new Promise(solv => solv(true))) ): MetadataMockType => ({ database: {} as Db, + token: TOKEN, + getToken: jest.fn(() => TOKEN), getHeadCommit: headCommit, updateBranch: updateBranch, createRepository: jest.fn() @@ -63,7 +68,6 @@ const request = async ( const HOST_DIR = configOrError("HOST_DIR"); const TARGET_URL = process.env.TARGET_URL ?? "http://localhost:3000"; -const TOKEN = process.env.TOKEN ?? ""; describe("templates", () => { describe("GET /bash", () => { diff --git a/src/routes.ts b/src/routes.ts index 2b787ba..4cdee69 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -11,7 +11,6 @@ import { configOrError } from "./util/config"; import loggerConfig from "./util/logger"; import { Messages } from "./errors"; -const TOKEN = process.env.TOKEN ?? ""; const UPLOAD_LIMIT = Number(process.env.UPLOAD_LIMIT ?? 4194304); const HOST_DIR = configOrError("HOST_DIR"); @@ -45,8 +44,7 @@ export default (metadata: Metadata, publicPath: string): Router => { const { org, repo, branch, commit } = req.params; const { token, format } = req.query; - //TODO @Metadata token should come from metadata - if (token != TOKEN) { + if (token != metadata.getToken()) { return res.status(401).send(Messages.InvalidToken); } |
