From 56da6b0a828500b298a129e1862e2598d18525d8 Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Wed, 23 Aug 2023 11:38:59 +0530 Subject: [PATCH] Feature: Made the title configurable --- .env | 1 + brewman/brewman/core/config.py | 1 + brewman/brewman/main.py | 2 ++ brewman/brewman/routers/title.py | 11 ++++++++ docker/files/.env | 1 + docker/vars/acc.yml | 1 + docker/vars/exp.yml | 1 + docker/vars/hinchco.yml | 1 + docker/vars/hops.yml | 2 ++ docker/vars/mhl.yml | 1 + .../app/core/nav-bar/nav-bar.component.html | 4 ++- .../src/app/core/nav-bar/nav-bar.component.ts | 18 ++++++++++--- overlord/src/app/core/title.service.ts | 25 +++++++++++++++++++ overlord/src/environments/environment.ts | 1 + 14 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 brewman/brewman/routers/title.py create mode 100644 overlord/src/app/core/title.service.ts diff --git a/.env b/.env index 98cfa08a..d56c4c0e 100644 --- a/.env +++ b/.env @@ -1,3 +1,4 @@ +TITLE="Brewman" HOST=0.0.0.0 PORT=80 LOG_LEVEL=WARN diff --git a/brewman/brewman/core/config.py b/brewman/brewman/core/config.py index 6d2c431a..b434ecea 100644 --- a/brewman/brewman/core/config.py +++ b/brewman/brewman/core/config.py @@ -7,6 +7,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): # openssl rand -hex 32 + TITLE: str = "" SECRET_KEY: str = secrets.token_urlsafe(32) MIDDLEWARE_SECRET_KEY: str = secrets.token_urlsafe(5) ALGORITHM: str = "HS256" diff --git a/brewman/brewman/main.py b/brewman/brewman/main.py index 5d5e9922..87340f6d 100644 --- a/brewman/brewman/main.py +++ b/brewman/brewman/main.py @@ -40,6 +40,7 @@ from .routers import ( recipe, recipe_template, role, + title, user, voucher, voucher_types, @@ -130,6 +131,7 @@ app.include_router(maintenance.router, prefix="/api/maintenance", tags=["setting app.include_router(db_integrity.router, prefix="/api/db-integrity", tags=["management"]) app.include_router(rebase.router, prefix="/api/rebase", tags=["management"]) +app.include_router(title.router, prefix="/api/title") def init() -> None: diff --git a/brewman/brewman/routers/title.py b/brewman/brewman/routers/title.py new file mode 100644 index 00000000..6282794f --- /dev/null +++ b/brewman/brewman/routers/title.py @@ -0,0 +1,11 @@ +from fastapi import APIRouter + +from ..core.config import settings + + +router = APIRouter() + + +@router.get("", response_model=str) +async def get_version() -> str: + return settings.TITLE diff --git a/docker/files/.env b/docker/files/.env index 8450a5f9..4a86b917 100644 --- a/docker/files/.env +++ b/docker/files/.env @@ -1,3 +1,4 @@ +TITLE="{{ title }}" HOST=0.0.0.0 PORT=80 LOG_LEVEL=WARN diff --git a/docker/vars/acc.yml b/docker/vars/acc.yml index 23c877c7..d9b01b7f 100644 --- a/docker/vars/acc.yml +++ b/docker/vars/acc.yml @@ -1,5 +1,6 @@ --- name: acc +title: "The Great Bear" http_host: "acc.hopsngrains.com" http_conf: "acc.hopsngrains.com.conf" diff --git a/docker/vars/exp.yml b/docker/vars/exp.yml index 0badd264..5ab230f7 100644 --- a/docker/vars/exp.yml +++ b/docker/vars/exp.yml @@ -1,5 +1,6 @@ --- name: exp +title: Tanshu http_host: "exp.tanshu.com" http_conf: "exp.tanshu.com.conf" diff --git a/docker/vars/hinchco.yml b/docker/vars/hinchco.yml index ee3af75f..7a61d202 100644 --- a/docker/vars/hinchco.yml +++ b/docker/vars/hinchco.yml @@ -1,5 +1,6 @@ --- name: hinchco +title: Mozimo http_host: "acc.hinchco.in" http_conf: "acc.hinchco.in.conf" diff --git a/docker/vars/hops.yml b/docker/vars/hops.yml index 03fe93c6..0f5bfdf7 100644 --- a/docker/vars/hops.yml +++ b/docker/vars/hops.yml @@ -1,5 +1,7 @@ --- name: hops +title: "HnG Panchkula" + http_host: "hops.hopsngrains.com" http_conf: "hops.hopsngrains.com.conf" diff --git a/docker/vars/mhl.yml b/docker/vars/mhl.yml index e6c1a2e2..d023ab3a 100644 --- a/docker/vars/mhl.yml +++ b/docker/vars/mhl.yml @@ -1,5 +1,6 @@ --- name: mhl +title: "HnG Mohali" http_host: "mhl.hopsngrains.com" http_conf: "mhl.hopsngrains.com.conf" diff --git a/overlord/src/app/core/nav-bar/nav-bar.component.html b/overlord/src/app/core/nav-bar/nav-bar.component.html index b6cdce0f..7bbacd6a 100644 --- a/overlord/src/app/core/nav-bar/nav-bar.component.html +++ b/overlord/src/app/core/nav-bar/nav-bar.component.html @@ -1,5 +1,7 @@ - HnG / TGB + {{ title }} Journal Purchase diff --git a/overlord/src/app/core/nav-bar/nav-bar.component.ts b/overlord/src/app/core/nav-bar/nav-bar.component.ts index fa1b0cc3..34c0a57b 100644 --- a/overlord/src/app/core/nav-bar/nav-bar.component.ts +++ b/overlord/src/app/core/nav-bar/nav-bar.component.ts @@ -1,18 +1,30 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; +import { environment } from '../../../environments/environment'; import { AuthService } from '../../auth/auth.service'; +import { TitleService } from '../title.service'; @Component({ selector: 'app-nav-bar', templateUrl: './nav-bar.component.html', styleUrls: ['./nav-bar.component.css'], }) -export class NavBarComponent { +export class NavBarComponent implements OnInit { + title: string; constructor( private router: Router, public auth: AuthService, - ) {} + public titleService: TitleService, + ) { + this.title = environment.title; + } + + ngOnInit() { + this.titleService.get().subscribe((value) => { + this.title = value; + }); + } logout() { this.auth.logout(); diff --git a/overlord/src/app/core/title.service.ts b/overlord/src/app/core/title.service.ts new file mode 100644 index 00000000..9a51110d --- /dev/null +++ b/overlord/src/app/core/title.service.ts @@ -0,0 +1,25 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs/internal/Observable'; +import { catchError } from 'rxjs/operators'; + +import { ErrorLoggerService } from './error-logger.service'; + +const url = '/api/title'; +const serviceName = 'VoucherService'; + +@Injectable({ + providedIn: 'root', +}) +export class TitleService { + constructor( + private http: HttpClient, + private log: ErrorLoggerService, + ) {} + + get(): Observable { + return this.http + .get(url) + .pipe(catchError(this.log.handleError(serviceName, 'Get Title'))) as Observable; + } +} diff --git a/overlord/src/environments/environment.ts b/overlord/src/environments/environment.ts index 08ef8ebf..513eb2bb 100644 --- a/overlord/src/environments/environment.ts +++ b/overlord/src/environments/environment.ts @@ -7,6 +7,7 @@ export const environment = { // eslint-disable-next-line @typescript-eslint/naming-convention ACCESS_TOKEN_REFRESH_MINUTES: 10, // refresh token 10 minutes before expiry version: '11.3.1', + title: 'HnG / TGB', }; /*