aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/index.ts3
-rw-r--r--src/metadata.ts8
-rw-r--r--src/routes.test.ts6
-rw-r--r--src/routes.ts4
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);
}