Renaming of rest resources
This commit is contained in:
parent
f936e84168
commit
face2f45e4
41 changed files with 61 additions and 61 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
import { AuthHandler } from "../handlers/AuthHandler.js";
|
import { AuthHandler } from "../../handlers/AuthHandler.js";
|
||||||
import { UserRepository } from "../repositories/UserRepository.js";
|
import { UserRepository } from "../../repositories/UserRepository.js";
|
||||||
import { UserDtoEntityMapper } from "../mappers/UserDtoEntityMapper.js";
|
import { UserDtoEntityMapper } from "../../mappers/UserDtoEntityMapper.js";
|
||||||
import {
|
import {
|
||||||
ValidationError,
|
ValidationError,
|
||||||
UnauthorizedError,
|
UnauthorizedError,
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
import { asyncHandler } from "../utils/asyncHandler.js";
|
import { asyncHandler } from "../../utils/asyncHandler.js";
|
||||||
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
import { RecipeRepository } from "../../repositories/RecipeRepository.js";
|
||||||
import { CompactRecipeHandler } from "../handlers/CompactRecipeHandler.js";
|
import { CompactRecipeHandler } from "../../handlers/CompactRecipeHandler.js";
|
||||||
import { CompactRecipeDtoEntityMapper } from "../mappers/CompactRecipeDtoEntityMapper.js";
|
import { CompactRecipeDtoEntityMapper } from "../../mappers/CompactRecipeDtoEntityMapper.js";
|
||||||
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
import { RecipeRepository } from "../../repositories/RecipeRepository.js";
|
||||||
import { RecipeDtoEntityMapper } from "../mappers/RecipeDtoEntityMapper.js";
|
import { RecipeDtoEntityMapper } from "../../mappers/RecipeDtoEntityMapper.js";
|
||||||
import { RecipeHandler } from "../handlers/RecipeHandler.js";
|
import { RecipeHandler } from "../../handlers/RecipeHandler.js";
|
||||||
import { asyncHandler } from "../utils/asyncHandler.js";
|
import { asyncHandler } from "../../utils/asyncHandler.js";
|
||||||
import { RecipeDto } from "../dtos/RecipeDto.js";
|
import { RecipeDto } from "../dtos/RecipeDto.js";
|
||||||
import { RecipeIngredientDtoEntityMapper } from "../mappers/RecipeIngredientDtoEntityMapper.js";
|
import { RecipeIngredientDtoEntityMapper } from "../../mappers/RecipeIngredientDtoEntityMapper.js";
|
||||||
import { RecipeIngredientGroupDtoEntityMapper } from "../mappers/RecipeIngredientGroupDtoEntityMapper.js";
|
import { RecipeIngredientGroupDtoEntityMapper } from "../../mappers/RecipeIngredientGroupDtoEntityMapper.js";
|
||||||
import { RecipeInstructionStepDtoEntityMapper } from "../mappers/RecipeInstructionStepDtoEntityMapper.js";
|
import { RecipeInstructionStepDtoEntityMapper } from "../../mappers/RecipeInstructionStepDtoEntityMapper.js";
|
||||||
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
import { Router } from "express";
|
import { Router } from "express";
|
||||||
import { UserHandler } from "../handlers/UserHandler.js";
|
import { UserHandler } from "../../handlers/UserHandler.js";
|
||||||
import { CreateUserRequest } from "../dtos/CreateUserRequest.js";
|
import { CreateUserRequest } from "../dtos/CreateUserRequest.js";
|
||||||
import { UserRepository } from "../repositories/UserRepository.js";
|
import { UserRepository } from "../../repositories/UserRepository.js";
|
||||||
import { UserDtoEntityMapper } from "../mappers/UserDtoEntityMapper.js";
|
import { UserDtoEntityMapper } from "../../mappers/UserDtoEntityMapper.js";
|
||||||
import { asyncHandler } from "../utils/asyncHandler.js";
|
import { asyncHandler } from "../../utils/asyncHandler.js";
|
||||||
import { CreateUserResponse } from "../dtos/CreateUserResponse.js";
|
import { CreateUserResponse } from "../dtos/CreateUserResponse.js";
|
||||||
import { UserDto } from "../dtos/UserDto.js";
|
import { UserDto } from "../dtos/UserDto.js";
|
||||||
import {
|
import {
|
||||||
requireAdmin,
|
requireAdmin,
|
||||||
requireAdminOrOwner,
|
requireAdminOrOwner,
|
||||||
requireAdminOrSelf
|
requireAdminOrSelf
|
||||||
} from "../middleware/authorizationMiddleware.js";
|
} from "../../middleware/authorizationMiddleware.js";
|
||||||
import { UserListResponse } from "../dtos/UserListResponse.js";
|
import { UserListResponse } from "../dtos/UserListResponse.js";
|
||||||
import { HttpStatusCode } from "../apiHelpers/HttpStatusCodes.js";
|
import { HttpStatusCode } from "../apiHelpers/HttpStatusCodes.js";
|
||||||
import { InternalServerError, NotFoundError } from "../errors/httpErrors.js";
|
import { InternalServerError, NotFoundError } from "../errors/httpErrors.js";
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { Entity, Column } from "typeorm";
|
import { Entity, Column } from "typeorm";
|
||||||
import { AbstractEntity } from "./AbstractEntity.js";
|
import { AbstractEntity } from "./AbstractEntity.js";
|
||||||
import { UserRole } from "../enums/UserRole.js";
|
import { UserRole } from "../api/enums/UserRole.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entity describing a user
|
* Entity describing a user
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { UserRepository } from "../repositories/UserRepository.js";
|
import { UserRepository } from "../repositories/UserRepository.js";
|
||||||
import { encrypt } from "../utils/encryptionUtils.js";
|
import { encrypt } from "../utils/encryptionUtils.js";
|
||||||
import { ValidationError, UnauthorizedError } from "../errors/httpErrors.js";
|
import { ValidationError, UnauthorizedError } from "../api/errors/httpErrors.js";
|
||||||
import { UserDtoEntityMapper } from "../mappers/UserDtoEntityMapper.js";
|
import { UserDtoEntityMapper } from "../mappers/UserDtoEntityMapper.js";
|
||||||
import { LoginResponse } from "../dtos/LoginResponse.js";
|
import { LoginResponse } from "../api/dtos/LoginResponse.js";
|
||||||
import { LoginRequest } from "../dtos/LoginRequest.js";
|
import { LoginRequest } from "../api/dtos/LoginRequest.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller responsible for authentication, e.g., login or issueing a token with extended
|
* Controller responsible for authentication, e.g., login or issueing a token with extended
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { CompactRecipeDto } from "../dtos/CompactRecipeDto.js";
|
import { CompactRecipeDto } from "../api/dtos/CompactRecipeDto.js";
|
||||||
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
||||||
import { CompactRecipeDtoEntityMapper } from "../mappers/CompactRecipeDtoEntityMapper.js";
|
import { CompactRecipeDtoEntityMapper } from "../mappers/CompactRecipeDtoEntityMapper.js";
|
||||||
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { RecipeDto } from "../dtos/RecipeDto.js";
|
import { RecipeDto } from "../api/dtos/RecipeDto.js";
|
||||||
import { RecipeDtoEntityMapper } from "../mappers/RecipeDtoEntityMapper.js";
|
import { RecipeDtoEntityMapper } from "../mappers/RecipeDtoEntityMapper.js";
|
||||||
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
import { RecipeRepository } from "../repositories/RecipeRepository.js";
|
||||||
import { NotFoundError, ValidationError } from "../errors/httpErrors.js";
|
import { NotFoundError, ValidationError } from "../api/errors/httpErrors.js";
|
||||||
import { RecipeInstructionStepDto } from "../dtos/RecipeInstructionStepDto.js";
|
import { RecipeInstructionStepDto } from "../api/dtos/RecipeInstructionStepDto.js";
|
||||||
import { RecipeIngredientGroupDto } from "../dtos/RecipeIngredientGroupDto.js";
|
import { RecipeIngredientGroupDto } from "../api/dtos/RecipeIngredientGroupDto.js";
|
||||||
import { RecipeIngredientDto } from "../dtos/RecipeIngredientDto.js";
|
import { RecipeIngredientDto } from "../api/dtos/RecipeIngredientDto.js";
|
||||||
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
import {ConflictError, NotFoundError, ValidationError} from "../errors/httpErrors.js";
|
import {ConflictError, NotFoundError, ValidationError} from "../api/errors/httpErrors.js";
|
||||||
import {CreateUserRequest} from "../dtos/CreateUserRequest.js";
|
import {CreateUserRequest} from "../api/dtos/CreateUserRequest.js";
|
||||||
import {UserDto} from "../dtos/UserDto.js";
|
import {UserDto} from "../api/dtos/UserDto.js";
|
||||||
import {encrypt} from "../utils/encryptionUtils.js";
|
import {encrypt} from "../utils/encryptionUtils.js";
|
||||||
import {UserRepository} from "../repositories/UserRepository.js";
|
import {UserRepository} from "../repositories/UserRepository.js";
|
||||||
import {UserDtoEntityMapper} from "../mappers/UserDtoEntityMapper.js";
|
import {UserDtoEntityMapper} from "../mappers/UserDtoEntityMapper.js";
|
||||||
import {UUID} from "crypto";
|
import {UUID} from "crypto";
|
||||||
import {ChangeUserPasswordRequest} from "../dtos/ChangeUserPasswordRequest.js";
|
import {ChangeUserPasswordRequest} from "../api/dtos/ChangeUserPasswordRequest.js";
|
||||||
import {UserEntity} from "../entities/UserEntity.js";
|
import {UserEntity} from "../entities/UserEntity.js";
|
||||||
import {UserRole, UserRoleHelper} from "../enums/UserRole.js";
|
import {UserRole, UserRoleHelper} from "../api/enums/UserRole.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls all user specific actions
|
* Controls all user specific actions
|
||||||
|
|
|
||||||
10
src/index.ts
10
src/index.ts
|
|
@ -6,11 +6,11 @@ import { requestLoggerMiddleware } from "./middleware/requestLoggerMiddleware.js
|
||||||
import { errorLoggerMiddleware } from "./middleware/errorLoggerMiddleware.js";
|
import { errorLoggerMiddleware } from "./middleware/errorLoggerMiddleware.js";
|
||||||
import { corsHeaders } from "./middleware/corsMiddleware.js";
|
import { corsHeaders } from "./middleware/corsMiddleware.js";
|
||||||
import { logger } from "./utils/logger.js";
|
import { logger } from "./utils/logger.js";
|
||||||
import { HttpStatusCode } from "./apiHelpers/HttpStatusCodes.js";
|
import { HttpStatusCode } from "./api/apiHelpers/HttpStatusCodes.js";
|
||||||
import authRoutes, { authBasicRoute } from "./endpoints/AuthRestResource.js";
|
import authRoutes, { authBasicRoute } from "./api/endpoints/AuthRestResource.js";
|
||||||
import userRoutes, { userBasicRoute } from "./endpoints/UserRestResource.js";
|
import userRoutes, { userBasicRoute } from "./api/endpoints/UserRestResource.js";
|
||||||
import compactRecipeRoutes from "./endpoints/CompactRecipeRestResource.js";
|
import compactRecipeRoutes from "./api/endpoints/CompactRecipeRestResource.js";
|
||||||
import recipeRoutes from "./endpoints/RecipeRestResource.js";
|
import recipeRoutes from "./api/endpoints/RecipeRestResource.js";
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { AbstractDto } from "../dtos/AbstractDto.js";
|
import { AbstractDto } from "../api/dtos/AbstractDto.js";
|
||||||
import { AbstractEntity } from "../entities/AbstractEntity.js";
|
import { AbstractEntity } from "../entities/AbstractEntity.js";
|
||||||
|
|
||||||
export abstract class AbstractDtoEntityMapper<
|
export abstract class AbstractDtoEntityMapper<
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { CompactRecipeDto } from "../dtos/CompactRecipeDto.js";
|
import { CompactRecipeDto } from "../api/dtos/CompactRecipeDto.js";
|
||||||
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { RecipeDto } from "../dtos/RecipeDto.js";
|
import { RecipeDto } from "../api/dtos/RecipeDto.js";
|
||||||
import { RecipeIngredientGroupDto } from "../dtos/RecipeIngredientGroupDto.js";
|
import { RecipeIngredientGroupDto } from "../api/dtos/RecipeIngredientGroupDto.js";
|
||||||
import { RecipeInstructionStepDto } from "../dtos/RecipeInstructionStepDto.js";
|
import { RecipeInstructionStepDto } from "../api/dtos/RecipeInstructionStepDto.js";
|
||||||
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
import { RecipeEntity } from "../entities/RecipeEntity.js";
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
import { RecipeIngredientGroupDtoEntityMapper } from "./RecipeIngredientGroupDtoEntityMapper.js";
|
import { RecipeIngredientGroupDtoEntityMapper } from "./RecipeIngredientGroupDtoEntityMapper.js";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { RecipeIngredientDto } from "../dtos/RecipeIngredientDto.js";
|
import { RecipeIngredientDto } from "../api/dtos/RecipeIngredientDto.js";
|
||||||
import { RecipeIngredientEntity } from "../entities/RecipeIngredientEntity.js";
|
import { RecipeIngredientEntity } from "../entities/RecipeIngredientEntity.js";
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { RecipeIngredientDto } from "../dtos/RecipeIngredientDto.js";
|
import { RecipeIngredientDto } from "../api/dtos/RecipeIngredientDto.js";
|
||||||
import { RecipeIngredientGroupDto } from "../dtos/RecipeIngredientGroupDto.js";
|
import { RecipeIngredientGroupDto } from "../api/dtos/RecipeIngredientGroupDto.js";
|
||||||
import { RecipeIngredientGroupEntity } from "../entities/RecipeIngredientGroupEntity.js";
|
import { RecipeIngredientGroupEntity } from "../entities/RecipeIngredientGroupEntity.js";
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
import { RecipeIngredientDtoEntityMapper } from "./RecipeIngredientDtoEntityMapper.js";
|
import { RecipeIngredientDtoEntityMapper } from "./RecipeIngredientDtoEntityMapper.js";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { RecipeInstructionStepDto } from "../dtos/RecipeInstructionStepDto.js";
|
import { RecipeInstructionStepDto } from "../api/dtos/RecipeInstructionStepDto.js";
|
||||||
import { RecipeInstructionStepEntity } from "../entities/RecipeInstructionStepEntity.js";
|
import { RecipeInstructionStepEntity } from "../entities/RecipeInstructionStepEntity.js";
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
import { AbstractDtoEntityMapper } from "./AbstractDtoEntityMapper.js";
|
||||||
import { UserEntity } from "../entities/UserEntity.js";
|
import { UserEntity } from "../entities/UserEntity.js";
|
||||||
import { UserDto } from "../dtos/UserDto.js";
|
import { UserDto } from "../api/dtos/UserDto.js";
|
||||||
|
|
||||||
export class UserDtoEntityMapper extends AbstractDtoEntityMapper<UserEntity, UserDto> {
|
export class UserDtoEntityMapper extends AbstractDtoEntityMapper<UserEntity, UserDto> {
|
||||||
toDto(entity: UserEntity): UserDto {
|
toDto(entity: UserEntity): UserDto {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { NextFunction, Request, Response } from "express";
|
import { NextFunction, Request, Response } from "express";
|
||||||
import jwt from "jsonwebtoken";
|
import jwt from "jsonwebtoken";
|
||||||
import dotenv from "dotenv";
|
import dotenv from "dotenv";
|
||||||
import { authBasicRoute } from "../endpoints/AuthRestResource.js";
|
import { authBasicRoute } from "../api/endpoints/AuthRestResource.js";
|
||||||
import { AuthPayload } from "../dtos/AuthPayload.js";
|
import { AuthPayload } from "../api/dtos/AuthPayload.js";
|
||||||
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
import {HttpStatusCode} from "../api/apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { NextFunction, Request, Response } from "express";
|
import { NextFunction, Request, Response } from "express";
|
||||||
import { ForbiddenError } from "../errors/httpErrors.js";
|
import { ForbiddenError } from "../api/errors/httpErrors.js";
|
||||||
import { HttpStatusCode } from "../apiHelpers/HttpStatusCodes.js";
|
import { HttpStatusCode } from "../api/apiHelpers/HttpStatusCodes.js";
|
||||||
import { UserRole } from "../enums/UserRole.js";
|
import { UserRole } from "../api/enums/UserRole.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Middleware to check if the current user has one of the required roles
|
* Middleware to check if the current user has one of the required roles
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Request, Response, NextFunction } from "express";
|
import { Request, Response, NextFunction } from "express";
|
||||||
import {HttpStatusCode} from "../apiHelpers/HttpStatusCodes.js";
|
import {HttpStatusCode} from "../api/apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add CORS header
|
* Add CORS header
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// middleware/errorHandler.ts
|
// middleware/errorHandler.ts
|
||||||
import { Request, Response, NextFunction } from "express";
|
import { Request, Response, NextFunction } from "express";
|
||||||
import { HttpError, InternalServerError } from "../errors/httpErrors.js";
|
import { HttpError, InternalServerError } from "../api/errors/httpErrors.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Express global error-handling middleware.
|
* Express global error-handling middleware.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { Request, Response, NextFunction } from "express";
|
import { Request, Response, NextFunction } from "express";
|
||||||
import { HttpError } from "../errors/httpErrors.js";
|
import { HttpError } from "../api/errors/httpErrors.js";
|
||||||
import { logger } from "../utils/logger.js";
|
import { logger } from "../utils/logger.js";
|
||||||
import { HttpStatusCode } from "../apiHelpers/HttpStatusCodes.js";
|
import { HttpStatusCode } from "../api/apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error logging and handling middleware
|
* Error logging and handling middleware
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import jwt from "jsonwebtoken";
|
import jwt from "jsonwebtoken";
|
||||||
import bcrypt from "bcrypt";
|
import bcrypt from "bcrypt";
|
||||||
import dotenv from "dotenv";
|
import dotenv from "dotenv";
|
||||||
import { AuthPayload } from "../dtos/AuthPayload.js";
|
import { AuthPayload } from "../api/dtos/AuthPayload.js";
|
||||||
|
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
const { JWT_SECRET = "" } = process.env;
|
const { JWT_SECRET = "" } = process.env;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import winston from "winston";
|
import winston from "winston";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { HttpStatusCode } from "../apiHelpers/HttpStatusCodes.js";
|
import { HttpStatusCode } from "../api/apiHelpers/HttpStatusCodes.js";
|
||||||
|
|
||||||
// Define log format
|
// Define log format
|
||||||
const logFormat = winston.format.combine(
|
const logFormat = winston.format.combine(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue