Restructured services to support more... services
This commit is contained in:
@@ -7,22 +7,45 @@ import morgan = require('morgan');
|
||||
const app = express()
|
||||
|
||||
app.use(morgan((tokens: morgan.TokenIndexer, req: express.Request, res: express.Response) => {
|
||||
return JSON.stringify({
|
||||
type: 'http',
|
||||
timestamp: new Date().toISOString(),
|
||||
|
||||
const head: LogHeader = {
|
||||
type: 'http',
|
||||
level: 'info',
|
||||
depth: 'normal',
|
||||
timestamp: new Date().toISOString(),
|
||||
}
|
||||
|
||||
const payload: LogPayload = {
|
||||
message: 'HTTP request completed',
|
||||
data: {
|
||||
method: tokens.method(req, res),
|
||||
path: tokens.url(req, res),
|
||||
status: Number(tokens.status(req, res)),
|
||||
response_time_ms: Number(tokens['response-time'](req, res)),
|
||||
|
||||
ip: req.ip,
|
||||
user_id: req.user.id,
|
||||
user_name: req.user.name,
|
||||
user_agent: req.headers['user-agent'],
|
||||
},
|
||||
}
|
||||
|
||||
user: req.user
|
||||
? { id: req.user.id, name: req.user.name }
|
||||
: null,
|
||||
});
|
||||
logger.log(head.level, head.type, payload.message, payload.data, head.depth)
|
||||
// {
|
||||
// type: 'http',
|
||||
// timestamp: new Date().toISOString(),
|
||||
|
||||
// method: tokens.method(req, res),
|
||||
// path: tokens.url(req, res),
|
||||
// status: Number(tokens.status(req, res)),
|
||||
// response_time_ms: Number(tokens['response-time'](req, res)),
|
||||
|
||||
// ip: req.ip,
|
||||
// user_agent: req.headers['user-agent'],
|
||||
|
||||
// user: req.user
|
||||
// ? { id: req.user.id, name: req.user.name }
|
||||
// : null,
|
||||
// }
|
||||
return '';
|
||||
}, {
|
||||
skip: (req: express.Request) => {
|
||||
return req.originalUrl === '/members/me';
|
||||
@@ -89,6 +112,7 @@ import { roles, memberRoles } from './routes/roles';
|
||||
import { courseRouter, eventRouter } from './routes/course';
|
||||
import { calendarRouter } from './routes/calendar';
|
||||
import { docsRouter } from './routes/docs';
|
||||
import { logger, LogHeader, LogPayload } from './services/logging/logger';
|
||||
|
||||
app.use('/application', applicationRouter);
|
||||
app.use('/ranks', ranks);
|
||||
|
||||
@@ -2,14 +2,14 @@ const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
import pool from '../db';
|
||||
import { approveApplication, createApplication, denyApplication, getAllMemberApplications, getApplicationByID, getApplicationComments, getApplicationList, getMemberApplication } from '../services/applicationService';
|
||||
import { setUserState } from '../services/memberService';
|
||||
import { approveApplication, createApplication, denyApplication, getAllMemberApplications, getApplicationByID, getApplicationComments, getApplicationList, getMemberApplication } from '../services/db/applicationService';
|
||||
import { setUserState } from '../services/db/memberService';
|
||||
import { MemberState } from '@app/shared/types/member';
|
||||
import { getRankByName, insertMemberRank } from '../services/rankService';
|
||||
import { getRankByName, insertMemberRank } from '../services/db/rankService';
|
||||
import { ApplicationFull, CommentRow } from "@app/shared/types/application"
|
||||
import { assignUserToStatus } from '../services/statusService';
|
||||
import { assignUserToStatus } from '../services/db/statusService';
|
||||
import { Request, response, Response } from 'express';
|
||||
import { getUserRoles } from '../services/rolesService';
|
||||
import { getUserRoles } from '../services/db/rolesService';
|
||||
import { requireLogin, requireRole } from '../middleware/auth';
|
||||
|
||||
//get CoC
|
||||
|
||||
@@ -9,8 +9,8 @@ const router = express.Router();
|
||||
import { Role } from '@app/shared/types/roles';
|
||||
import pool from '../db';
|
||||
import { requireLogin } from '../middleware/auth';
|
||||
import { getUserRoles } from '../services/rolesService';
|
||||
import { getUserState, mapDiscordtoID } from '../services/memberService';
|
||||
import { getUserRoles } from '../services/db/rolesService';
|
||||
import { getUserState, mapDiscordtoID } from '../services/db/memberService';
|
||||
import { MemberState } from '@app/shared/types/member';
|
||||
import { toDateTime } from '@app/shared/utils/time';
|
||||
const querystring = require('querystring');
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Request, Response } from "express";
|
||||
import { createEvent, getEventAttendance, getEventDetails, getShortEventsInRange, setAttendanceStatus, setEventCancelled, updateEvent } from "../services/calendarService";
|
||||
import { createEvent, getEventAttendance, getEventDetails, getShortEventsInRange, setAttendanceStatus, setEventCancelled, updateEvent } from "../services/db/calendarService";
|
||||
import { CalendarAttendance, CalendarEvent } from "@app/shared/types/calendar";
|
||||
import { requireLogin, requireMemberState, requireRole } from "../middleware/auth";
|
||||
import { MemberState } from "@app/shared/types/member";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { CourseAttendee, CourseEventDetails } from "@app/shared/types/course";
|
||||
import { getAllCourses, getCourseEventAttendees, getCourseEventDetails, getCourseEventRoles, getCourseEvents, insertCourseEvent } from "../services/CourseSerivce";
|
||||
import { getAllCourses, getCourseEventAttendees, getCourseEventDetails, getCourseEventRoles, getCourseEvents, insertCourseEvent } from "../services/db/CourseSerivce";
|
||||
import { Request, Response, Router } from "express";
|
||||
import { requireLogin, requireMemberState } from "../middleware/auth";
|
||||
import { MemberState } from "@app/shared/types/member";
|
||||
|
||||
@@ -3,7 +3,7 @@ const router = express.Router();
|
||||
|
||||
import { Request, Response } from 'express';
|
||||
import pool from '../db';
|
||||
import { closeLOA, createNewLOA, getAllLOA, getLOAbyID, getLoaTypes, getUserLOA, setLOAExtension } from '../services/loaService';
|
||||
import { closeLOA, createNewLOA, getAllLOA, getLOAbyID, getLoaTypes, getUserLOA, setLOAExtension } from '../services/db/loaService';
|
||||
import { LOARequest } from '@app/shared/types/loa';
|
||||
import { requireLogin, requireRole } from '../middleware/auth';
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ const router = express.Router();
|
||||
import { Request, Response } from 'express';
|
||||
import pool from '../db';
|
||||
import { requireLogin, requireMemberState, requireRole } from '../middleware/auth';
|
||||
import { getUserActiveLOA } from '../services/loaService';
|
||||
import { getAllMembersLite, getMemberSettings, getMembersFull, getMembersLite, getUserData, getUserState, setUserSettings } from '../services/memberService';
|
||||
import { getUserRoles } from '../services/rolesService';
|
||||
import { getUserActiveLOA } from '../services/db/loaService';
|
||||
import { getAllMembersLite, getMemberSettings, getMembersFull, getMembersLite, getUserData, getUserState, setUserSettings } from '../services/db/memberService';
|
||||
import { getUserRoles } from '../services/db/rolesService';
|
||||
import { memberSettings, MemberState, myData } from '@app/shared/types/member';
|
||||
|
||||
//get all users
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { MemberState } from "@app/shared/types/member";
|
||||
import { requireLogin, requireMemberState, requireRole } from "../middleware/auth";
|
||||
import { batchInsertMemberRank, getAllRanks, getPromotionHistorySummary, getPromotionsOnDay, insertMemberRank } from "../services/rankService";
|
||||
import { batchInsertMemberRank, getAllRanks, getPromotionHistorySummary, getPromotionsOnDay, insertMemberRank } from "../services/db/rankService";
|
||||
import { BatchPromotion, BatchPromotionMember } from '@app/shared/schemas/promotionSchema'
|
||||
|
||||
import express = require('express');
|
||||
|
||||
@@ -5,7 +5,7 @@ const ur = express.Router();
|
||||
import { MemberState } from '@app/shared/types/member';
|
||||
import pool from '../db';
|
||||
import { requireLogin, requireMemberState, requireRole } from '../middleware/auth';
|
||||
import { assignUserGroup, createGroup, getAllRoles, getRole, getUsersWithRole } from '../services/rolesService';
|
||||
import { assignUserGroup, createGroup, getAllRoles, getRole, getUsersWithRole } from '../services/db/rolesService';
|
||||
import { Request, Response } from 'express';
|
||||
|
||||
r.use(requireLogin)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import pool from "../db"
|
||||
import pool from "../../db"
|
||||
import { Course, CourseAttendee, CourseAttendeeRole, CourseEventDetails, CourseEventSummary, RawAttendeeRow } from "@app/shared/types/course"
|
||||
import { PagedData } from "@app/shared/types/pagination";
|
||||
import { toDateTime } from "@app/shared/utils/time";
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ApplicationListRow, ApplicationRow, CommentRow } from "@app/shared/types/application";
|
||||
import pool from "../db";
|
||||
import pool from "../../db";
|
||||
import { error } from "console";
|
||||
|
||||
export async function createApplication(memberID: number, appVersion: number, app: string) {
|
||||
@@ -1,4 +1,4 @@
|
||||
import pool from '../db';
|
||||
import pool from '../../db';
|
||||
import { CalendarEventShort, CalendarSignup, CalendarEvent, CalendarAttendance } from "@app/shared/types/calendar"
|
||||
import { toDateTime } from "@app/shared/utils/time"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { toDateTime } from "@app/shared/utils/time";
|
||||
import pool from "../db";
|
||||
import pool from "../../db";
|
||||
import { LOARequest, LOAType } from '@app/shared/types/loa'
|
||||
import { PagedData } from '@app/shared/types/pagination'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Role } from "@app/shared/types/roles";
|
||||
import pool from "../db";
|
||||
import pool from "../../db";
|
||||
import { Member, MemberCardDetails, MemberLight, memberSettings, MemberState } from '@app/shared/types/member'
|
||||
|
||||
export async function getUserData(userID: number): Promise<Member> {
|
||||
@@ -1,6 +1,6 @@
|
||||
import { BatchPromotion, BatchPromotionMember } from "@app/shared/schemas/promotionSchema";
|
||||
import { PromotionDetails, PromotionSummary } from "@app/shared/types/rank"
|
||||
import pool from "../db";
|
||||
import pool from "../../db";
|
||||
import { PagedData } from "@app/shared/types/pagination";
|
||||
import { toDateTime } from "@app/shared/utils/time";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { MemberLight } from '@app/shared/types/member';
|
||||
import pool from '../db';
|
||||
import pool from '../../db';
|
||||
import { Role, RoleSummary } from '@app/shared/types/roles'
|
||||
|
||||
export async function assignUserGroup(userID: number, roleID: number) {
|
||||
@@ -1,4 +1,4 @@
|
||||
import pool from "../db"
|
||||
import pool from "../../db"
|
||||
|
||||
export async function assignUserToStatus(userID: number, statusID: number) {
|
||||
const sql = `INSERT INTO members_statuses (member_id, status_id, start_date) VALUES (?, ?, NOW())`
|
||||
Reference in New Issue
Block a user