From dfc8fa994116b888b5446f7a3a650838b7954aa9 Mon Sep 17 00:00:00 2001 From: Brett Wright Date: Tue, 22 Feb 2022 12:12:29 +0100 Subject: [PATCH] I am even stupider than I thought --- src/service/router.ts | 2 +- src/service/search.ts | 16 +++++++----- src/service/teamArtifacts.ts | 47 +++++++++++------------------------- 3 files changed, 25 insertions(+), 40 deletions(-) diff --git a/src/service/router.ts b/src/service/router.ts index 5bc99d0..e867052 100644 --- a/src/service/router.ts +++ b/src/service/router.ts @@ -37,7 +37,7 @@ export async function createRouter( const baseUrl = options.config.getString("harbor.baseUrl"); const username = options.config.getString("harbor.username"); const password = options.config.getString("harbor.password"); - const redisConfig = options.config.getConfig("redis"); + const redisConfig = options.config.getOptionalConfig("redis"); const router = Router(); router.use(express.json()); diff --git a/src/service/search.ts b/src/service/search.ts index fd78e3a..84d5ba4 100644 --- a/src/service/search.ts +++ b/src/service/search.ts @@ -9,15 +9,19 @@ export async function repoSearch( password: string, body: string, team: string, - redisConfig: Config + redisConfig: Config | undefined ) { const repos: Repositories[] = JSON.parse(JSON.stringify(body)); - const redisHost = redisConfig.getString("host"); - const redisPort = redisConfig.getNumber("port"); + let client = redis.createClient({}); + if (redisConfig !== undefined) { + const redisHost = redisConfig.getString("host"); + const redisPort = redisConfig.getNumber("port"); + + client = redis.createClient({ + url: `redis://${redisHost}:${redisPort}`, + }); + } - const client = redis.createClient({ - url: `redis://${redisHost}:${redisPort}`, - }); await client.connect(); const HarborRepos = await client.json.get(team, { path: "." }); diff --git a/src/service/teamArtifacts.ts b/src/service/teamArtifacts.ts index ad54549..5442bf1 100644 --- a/src/service/teamArtifacts.ts +++ b/src/service/teamArtifacts.ts @@ -5,56 +5,37 @@ import { Config } from "@backstage/config"; export async function getTeamArtifacts( RepoInformation: RepoInformation[], team: string, - redisConfig: Config + redisConfig: Config | undefined ) { - const redisHost = redisConfig.getString("host"); - const redisPort = redisConfig.getNumber("port"); + let client = redis.createClient({}); + if (redisConfig !== undefined) { + const redisHost = redisConfig.getString("host"); + const redisPort = redisConfig.getNumber("port"); + + client = redis.createClient({ + url: `redis://${redisHost}:${redisPort}`, + }); + } - const client = redis.createClient({ - url: `redis://${redisHost}:${redisPort}`, - }); await client.connect(); const HarborArtifacts = await client.json.get(`${team}Artifacts`, { path: ".", }); if (HarborArtifacts) { - const Artifacts = await teamArtifacts(RepoInformation); - setRedisCache( - redisHost, - redisPort, - `${team}Artifacts`, - 60, - JSON.parse(JSON.stringify(Artifacts)) - ); return HarborArtifacts; } const Artifacts = await teamArtifacts(RepoInformation); - setRedisCache( - redisHost, - redisPort, + + await client.json.set( `${team}Artifacts`, - 60, + ".", JSON.parse(JSON.stringify(Artifacts)) ); + client.expire(`${team}Artifacts`, 3600); return Artifacts; } -async function setRedisCache( - redisHost: string, - redisPort: number, - identifier: string, - ttl: number = 3600, - jsonData: string -) { - const client = redis.createClient({ - url: `redis://${redisHost}:${redisPort}`, - }); - await client.connect(); - await client.json.set(identifier, ".", jsonData); - client.expire(identifier, ttl); -} - async function teamArtifacts(RepoInformation: RepoInformation[]) { const repoArtifacts: Artifact[] = []; const errorMsgs: HarborErrors[] = [];