Skip to content

Commit

Permalink
refactor: moved to using znv for env and moved logger to infra
Browse files Browse the repository at this point in the history
  • Loading branch information
ADRFranklin committed Apr 28, 2024
1 parent 4a051e8 commit 5399a29
Show file tree
Hide file tree
Showing 71 changed files with 393 additions and 408 deletions.
Binary file not shown.
3 changes: 2 additions & 1 deletion pkg/api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "api",
"version": "9.9.9",
"version": "0.6.0",
"description": "Petio API",
"main": "./src/app.ts",
"scripts": {
Expand Down Expand Up @@ -74,6 +74,7 @@
"xhr-request": "^1.1.0",
"xml-js": "^1.6.11",
"yargs-parser": "^21.1.1",
"znv": "^0.4.0",
"zod": "^3.22.4",
"zod-validation-error": "^3.2.0"
},
Expand Down
7 changes: 4 additions & 3 deletions pkg/api/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@ import errorHandler from '@/api/middleware/errorHandling';
import api from '@/api/routes/api';
import web from '@/api/routes/web';
import { config } from '@/config/index';
import logger from "@/loaders/logger";
import logger from '@/infra/logger/logger';
import listen from '@/utils/http';
import { removeSlashes } from '@/utils/urls';
import responseHandler from "./http/responseHandler";
import options from "./middleware/options";

import responseHandler from './http/responseHandler';
import logging from './middleware/logging';
import options from './middleware/options';

const routes = (subpath: string): Koa => {
const app = new Koa();
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/middleware/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as HttpStatus from 'http-status-codes';
import jwt from 'jsonwebtoken';
import { Context, Next } from 'koa';

import loggerMain from '@/loaders/logger';
import loggerMain from '@/infra/logger/logger';
import { UserModel } from '@/models/user';

const logger = loggerMain.child({ module: 'middleware.auth' });
Expand Down
14 changes: 3 additions & 11 deletions pkg/api/src/api/middleware/cors.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
import Cors from '@koa/cors';
import Koa from 'koa';

import httpConfig from "@/config/env/http";
import envConfig from "@/config/env/node";
import { HTTP_CORS_DOMAINS } from '@/infra/config/env';

export default () => {
// Enable cors
const whitelist = httpConfig.corsDomains;
if (envConfig.isDevelopment) {
// add local react dev
whitelist.push('http://localhost:3000'); // frontend
}

const corsOptions = {
origin: async (ctx: Koa.Context): Promise<string> => {
if (
ctx.request.header.origin &&
whitelist.indexOf(ctx.request.header.origin) !== -1
HTTP_CORS_DOMAINS.indexOf(ctx.request.header.origin) !== -1
) {
return ctx.request.header.origin;
}
return 'http://localhost:7777';
return 'http://localhost:7777';
},
credentials: true,
};
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/middleware/logging.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Context, Next } from 'koa';
import PinoHttp from 'pino-http';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';

const httpLogger = PinoHttp({
logger: logger.core(),
Expand Down
2 changes: 0 additions & 2 deletions pkg/api/src/api/routes/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import filter from '@/api/routes/filter';
import health from '@/api/routes/health';
import history from '@/api/routes/history';
import issue from '@/api/routes/issue';
import log from '@/api/routes/log';
import login from '@/api/routes/login';
import mail from '@/api/routes/mail';
import movie from '@/api/routes/movie';
Expand Down Expand Up @@ -67,7 +66,6 @@ export default (app: Koa, subpath: string) => {
filter(api);
history(api);
issue(api);
log(api);
login(api);
mail(api);
movie(api);
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import * as z from 'zod';
import { validateRequest } from '@/api/middleware/validation';
import { HasConfig, WriteConfig } from '@/config/config';
import { config } from '@/config/index';
import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import setupReady from '@/services/setup/setup';

const getConfig = async (ctx: Context) => {
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/discovery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import Router from '@koa/router';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import { UserModel } from '@/models/user';
import cache from '@/services/cache/cache';
import { DiscoveryResult } from '@/services/discovery/display';
Expand Down
4 changes: 2 additions & 2 deletions pkg/api/src/api/routes/filter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Router from '@koa/router';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import Filter from '@/models/filter';

const getFilters = async (ctx: Context) => {
Expand Down Expand Up @@ -80,4 +80,4 @@ export default (app: Router) => {
route.post('/update', updateFilter);

app.use(route.routes());
};
};
6 changes: 3 additions & 3 deletions pkg/api/src/api/routes/history.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import Router from '@koa/router';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import getBandwidth from '@/services/plex/bandwidth';
import getHistory from '@/services/plex/history';
import getServerInfo from '@/services/plex/serverInfo';

const listHistory = async (ctx: Context) => {
let {id} = ctx.request.body;
let { id } = ctx.request.body;
if (id === 'admin') id = 1;
try {
const data = await getHistory(id, ctx.request.body.type);
Expand Down Expand Up @@ -52,4 +52,4 @@ export default (app: Router) => {
route.get('/bandwidth', collectBandwidth);

app.use(route.routes());
};
};
7 changes: 3 additions & 4 deletions pkg/api/src/api/routes/issue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Router from '@koa/router';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import Issue from '@/models/issue';
import { UserModel } from '@/models/user';
import Mailer from '@/services/mail/mailer';
Expand All @@ -14,7 +14,6 @@ const listAllIssues = async (ctx: Context) => {
ctx.body = await Issue.find();
};


async function mailIssue(user_id, media_id, type, title) {
const userData = await UserModel.findOne({ id: user_id });
let media: any = false;
Expand Down Expand Up @@ -80,7 +79,7 @@ async function mailIssueResolve(user_id, media_id, type, title, message) {
const deleteIssues = async (ctx: Context) => {
const body = ctx.request.body as any;
const issueId = body.id;
const {message} = body;
const { message } = body;

try {
const issue = await Issue.findById(issueId);
Expand Down Expand Up @@ -147,4 +146,4 @@ export default (app: Router) => {
route.post('/remove', deleteIssues);

app.use(route.routes());
};
};
40 changes: 0 additions & 40 deletions pkg/api/src/api/routes/log.ts

This file was deleted.

3 changes: 1 addition & 2 deletions pkg/api/src/api/routes/login.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import xmlParser from 'xml-js';

import { authenticate } from '@/api/middleware/auth';
import { config } from '@/config/index';
import loggerMain from '@/loaders/logger';
import loggerMain from '@/infra/logger/logger';
import { GetUserByPlexID, UserModel, UserRole } from '@/models/user';

const logger = loggerMain.child({ module: 'routes.login' });
Expand Down Expand Up @@ -71,7 +71,6 @@ const attemptPlexAuth = async (ctx: Context) => {
const userId = await plexOauth(token);
const dbUser = await GetUserByPlexID(userId);


if (!dbUser) {
ctx.error({
statusCode: StatusCodes.FORBIDDEN,
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/mail.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { z } from 'zod';
import { validateRequest } from '@/api/middleware/validation';
import { WriteConfig } from '@/config/config';
import { config } from '@/config/index';
import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import Mailer from '@/services/mail/mailer';

const createMail = async (ctx: Context) => {
Expand Down
19 changes: 9 additions & 10 deletions pkg/api/src/api/routes/plex.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ import { Context } from 'koa';

import { WriteConfig } from '@/config/config';
import { config } from '@/config/index';
import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import { UserModel } from '@/models/user';
import plexLookup from '@/services/plex/lookup';
import MakePlexURL from '@/services/plex/util';

const lookupByIdAndType = async (ctx: Context) => {
const {type} = ctx.params;
const {id} = ctx.params;
const { type } = ctx.params;
const { id } = ctx.params;
if (!type || !id || type === 'undefined' || type === 'undefined') {
ctx.status = StatusCodes.BAD_REQUEST;
ctx.body = { error: 'invalid fields provided' };
Expand Down Expand Up @@ -63,13 +63,12 @@ const testPlexConnection = async (ctx: Context) => {
};
return;
}
ctx.status = StatusCodes.OK;
ctx.body = {
connection: false,
error: 'You are not the owner of this server',
};
return;

ctx.status = StatusCodes.OK;
ctx.body = {
connection: false,
error: 'You are not the owner of this server',
};
return;
} catch (err) {
logger.log({ level: 'error', message: err });

Expand Down
5 changes: 2 additions & 3 deletions pkg/api/src/api/routes/profiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import { adminRequired } from '@/api/middleware/auth';
import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import Profile from '@/models/profile';
import { UserModel } from '@/models/user';

Expand All @@ -22,7 +22,6 @@ const listProfiles = async (ctx: Context) => {
} catch (err) {
ctx.status = StatusCodes.INTERNAL_SERVER_ERROR;
ctx.body = { error: err };

}
};

Expand Down Expand Up @@ -161,4 +160,4 @@ export default (app: Router) => {
route.post('/delete_profile', adminRequired, deleteProfile);

app.use(route.routes());
};
};
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Bluebird from 'bluebird';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import { GetAllDownloaders, IDownloader } from '@/models/downloaders';
import Request from '@/models/request';
import { UserModel } from '@/models/user';
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/review.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Router from '@koa/router';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import Review from '@/models/review';
import { UserModel } from '@/models/user';

Expand Down
2 changes: 1 addition & 1 deletion pkg/api/src/api/routes/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import Router from '@koa/router';
import { StatusCodes } from 'http-status-codes';
import { Context } from 'koa';

import logger from '@/loaders/logger';
import logger from '@/infra/logger/logger';
import search from '@/services/tmdb/search';

const searchByTerm = async (ctx: Context) => {
Expand Down
Loading

0 comments on commit 5399a29

Please sign in to comment.