auth template modified for dev testing

This commit is contained in:
Kallesh B S 2025-06-18 17:15:21 +05:30
parent fcb8b6e428
commit 8b964d2c84
31 changed files with 230 additions and 306 deletions

278
api.http
View File

@ -1,266 +1,72 @@
// InsertRegions GET http://192.168.1.96:3006
POST http://localhost:3000/oracle/InsertRegions ###
GET http://localhost:3006
###
POST http://localhost:3006/sendmail/b@gmail.com
###
GET http://localhost:3006/GetUserDetails/d@gmail.com
###
GET http://localhost:3006/GetUserDetail/d@gmail.com
###
GET http://localhost:3006/GetSP
###
GET http://localhost:3006/checkroles
###
POST http://localhost:3006/login-client
Content-Type: application/json Content-Type: application/json
{ {
"p_region":"p_region", "P_EMAILADDR":"a@gmail.com",
"p_name":"p_name" "P_PASSWORD":"A1!bcdef"
} }
### ###
//UpdateRegion POST http://localhost:3006/logout-client
PATCH http://localhost:3000/oracle/UpdateRegion ###
POST http://localhost:3006/register
Content-Type: application/json Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImJAZ21haWwuY29tIiwiaWF0IjoxNzUwMTM3NTc4LCJleHAiOjE3NTAxNDExNzh9.ooNhATybtRY_HORWBH0vBLzPODxOWZMi3Q_cvS7kAho
{ {
"p_regionID": , "email":"b@gmail.com",
"p_name":"p_name" "password":"B1!bcdef"
} }
### ###
// GetRegions GET http://localhost:3006/getrole/ca
GET http://localhost:3000/oracle/GetRegions
### ###
PUT http://localhost:3006/forgot-password
//InsertNewServiceProvider
POST http://localhost:3000/oracle/InsertNewServiceProvider
Content-Type: application/json
{
"p_name": "Service Provider Name",
"p_lookupcode": "SP001",
"p_address1": "123 Main St",
"p_address2": "Suite 100",
"p_city": "Anytown",
"p_state": "CA",
"p_zip": "90210",
"p_country": "USA",
"p_issuingregion": "Region A",
"p_replacementregion": "Region B",
"p_bondsurety": "Surety Co.",
"p_cargopolicyno": "CP123456",
"p_cargosurety": "Cargo Surety Co.",
"p_user_id": "user123"
}
### ###
POST http://localhost:3006/logout-user
//UpdateServiceProvider
PUT http://localhost:3000/oracle/UpdateServiceProvider
Content-Type: application/json
{
"p_spid": 1,
"p_name": "Service Provider Name",
"p_lookupcode": "SP001",
"p_address1": "123 Main St",
"p_address2": "Suite 100",
"p_city": "Anytown",
"p_state": "CA",
"p_zip": "90210",
"p_country": "USA",
"p_issuingregion": "Region A",
"p_replacementregion": "Region B",
"p_bondsurety": "Surety Co.",
"p_cargopolicyno": "CP123456",
"p_cargosurety": "Cargo Surety Co.",
"p_user_id": "user123"
}
### ###
// GetAllServiceproviders GET http://localhost:3006/ref-tok
GET http://localhost:3000/oracle/GetAllServiceproviders
### ###
//GetSelectedServiceprovider GET http://localhost:3006/ref
GET http://localhost:3000/oracle/GetSelectedServiceprovider/12
###
//InsertSPContacts
POST http://localhost:3000/oracle/InsertSPContacts
Content-Type: application/json
{
"p_spid": 12345,
"p_defcontactflag":"N",
"p_firstname": "John",
"p_lastname": "Doe",
"p_title": "Mr.",
"p_phoneno": "123-456-7890",
"p_mobileno": "098-765-4321",
"p_faxno": "123-456-7891",
"p_emailaddress": "john.doe@example.com",
"p_user_id": "jdoe"
}
###
//SetSPDefaultcontact
POST http://localhost:3000/oracle/SetSPDefaultcontact/12
###
//UpdateSPContacts
PUT http://localhost:3000/oracle/UpdateSPContacts
Content-Type: application/json
{
"p_spcontactid": 12345,
"p_firstname": "Jane",
"p_lastname": "Doe",
"p_title": "Ms.",
"p_phoneno": "123-456-7890",
"p_mobileno": "098-765-4321",
"p_faxno": "123-456-7891",
"p_emailaddress": "jane.doe@example.com",
"p_user_id": "jdoe"
}
###
//InactivateSPContact
POST http://localhost:3000/oracle/InactivateSPContact/12
###
//GetSPDefaultcontact
GET http://localhost:3000/oracle/GetSPDefaultcontact/12
###
//GetAllSPcontacts
//GET http://localhost:3000/oracle/GetAllSPcontacts
###
//CreateCarnetSequence
POST http://localhost:3000/oracle/CreateCarnetSequence
Content-Type: application/json
{
"p_spid": 2,
"p_regionid": 81,
"p_startnumber": 2000,
"p_endnumber": 3000,
"p_carnettype": "original"
}
###
//GetCarnetSequence
GET http://localhost:3000/oracle/GetCarnetSequence/12
###
//GetParamValues
GET http://localhost:3000/oracle/GetParamValues?id=500&type=original
###
//CreateTableRecord
POST http://localhost:3000/oracle/CreateTableRecord
Content-Type: application/json
{
"P_USERID": "6",
"P_TABLEFULLDESC": "TypeA desc"
}
###
//CreateParamRecord
POST http://localhost:3000/oracle/CreateParamRecord
Content-Type: application/json
{
# "P_SPID": 4,
"P_PARAMTYPE": "TypeA",
"P_PARAMDESC": "Description of the parameter",
"P_PARAMVALUE": "Value of the parameter",
# "P_ADDLPARAMVALUE1": "Additional Value 1",
# "P_ADDLPARAMVALUE2": "Additional Value 2",
# "P_ADDLPARAMVALUE3": null,
# "P_ADDLPARAMVALUE4": "Additional Value 4",
# "P_ADDLPARAMVALUE5": null,
"P_SORTSEQ": 1,
"P_USERID": "12"
}
###
// UpdateParamRecord
PATCH http://localhost:3000/oracle/UpdateParamRecord
Content-Type: application/json
{
"P_SPID": 2,
"P_PARAMID": 1,
"P_PARAMDESC": "abc",
"P_ADDLPARAMVALUE1": "asd",
"P_ADDLPARAMVALUE2": "ad",
"P_ADDLPARAMVALUE3": null,
"P_ADDLPARAMVALUE4": "asd",
"P_ADDLPARAMVALUE5": null,
"P_SORTSEQ": 1,
"P_USERID": "12"
}
###
// InActivateParamRecord
PATCH http://localhost:3000/oracle/InActivateParamRecord?pid=1&uid=2
Content-Type: application/json
{
"P_PARAMID":2,
"P_USERID":"12"
}
###
// ReActivateParamRecord
PATCH http://localhost:3000/oracle/ReActivateParamRecord?pid=1&uid=2
Content-Type: application/json
{
"P_PARAMID":2,
"P_USERID":"12"
}
###

View File

@ -1,20 +1,22 @@
import { Body, Controller, Get, HttpCode, Post, Put, Req, Res } from '@nestjs/common'; import { Body, Controller, Get, HttpCode, Post, Put, Req, Res, UseInterceptors } from '@nestjs/common';
import { AuthService } from './auth.service'; import { AuthService } from './auth.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { AuthLoginDTO } from './auth.dto'; import { AuthLoginDTO } from './auth.dto';
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { LogoutInterceptor } from 'src/interceptors/logout.interceptor';
@ApiTags('Auth')
@Controller() @Controller()
export class AuthController { export class AuthController {
constructor(private readonly authService: AuthService) { } constructor(private readonly authService: AuthService) { }
@ApiTags('Auth')
@Post('/login')
login(@Body() body: AuthLoginDTO) {
return this.authService.login(body);
}
@Post('login-client') // @Post('/login')
// login(@Body() body: AuthLoginDTO) {
// return this.authService.login(body);
// }
@Post('login')
@HttpCode(200) @HttpCode(200)
async loginClient(@Body() body: AuthLoginDTO, @Res({ passthrough: true }) res: Response, @Req() req: Request) { async loginClient(@Body() body: AuthLoginDTO, @Res({ passthrough: true }) res: Response, @Req() req: Request) {
let k: any = await this.authService.loginUser(body.P_EMAILADDR, body.P_PASSWORD, req); let k: any = await this.authService.loginUser(body.P_EMAILADDR, body.P_PASSWORD, req);
@ -22,8 +24,8 @@ export class AuthController {
if (k.access_token) { if (k.access_token) {
res.cookie('access_token', k.access_token, { res.cookie('access_token', k.access_token, {
httpOnly: true, httpOnly: true,
secure: false, // set to true if you're on HTTPS secure: true, // set to true if you're on HTTPS
sameSite: 'lax', // adjust based on your needs (strict, lax , none) sameSite: 'none', // adjust based on your needs (strict, lax , none)
maxAge: 90 * 1000, // convert seconds to ms if applicable maxAge: 90 * 1000, // convert seconds to ms if applicable
}); });
} }
@ -31,8 +33,8 @@ export class AuthController {
if (k.refresh_token) { if (k.refresh_token) {
res.cookie('refresh_token', k.refresh_token, { res.cookie('refresh_token', k.refresh_token, {
httpOnly: true, httpOnly: true,
secure: false, // set to true if you're on HTTPS secure: true, // set to true if you're on HTTPS
sameSite: 'lax', // adjust based on your needs (strict, lax , none) sameSite: 'none', // adjust based on your needs (strict, lax , none)
maxAge: 90 * 1000, // convert seconds to ms if applicable maxAge: 90 * 1000, // convert seconds to ms if applicable
}); });
} }
@ -41,14 +43,14 @@ export class AuthController {
} }
// @UseGuards(RegisterGuard) // @UseGuards(RegisterGuard)
@Post('register-client') @Post('register')
async register(@Body() body: AuthLoginDTO, @Req() req: Request) { async register(@Body() body: AuthLoginDTO, @Req() req: Request) {
return this.authService.registerUser(body, req); return this.authService.registerUser(body, req);
} }
// @UseInterceptors(LogoutInterceptor) @UseInterceptors(LogoutInterceptor)
@HttpCode(200) @HttpCode(200)
@Post('logout-client') @Post('logout')
async logout(@Req() req: any, @Res() res: Response) { async logout(@Req() req: any, @Res() res: Response) {
const refreshToken = req.user?.refreshToken; const refreshToken = req.user?.refreshToken;
let rst: any = await this.authService.logoutUser(refreshToken); let rst: any = await this.authService.logoutUser(refreshToken);
@ -59,20 +61,20 @@ export class AuthController {
res.json({ ...rst }) res.json({ ...rst })
} }
@Put('forgot-password-client') @Put('forgot-password')
async forgotPassword() { async forgotPassword() {
return this.authService.forgotPassword(); return this.authService.forgotPassword();
} }
@Get('refresh-client-tokens') @Get('refresh-tokens')
async getTokenFromRefreshToken(@Req() req: Request, @Res({ passthrough: true }) res: Response) { async getTokenFromRefreshToken(@Req() req: Request, @Res({ passthrough: true }) res: Response) {
let k: any = await this.authService.getTokenFromRefreshToken(req) let k: any = await this.authService.getTokenFromRefreshToken(req)
if (k.access_token) { if (k.access_token) {
res.cookie('access_token', k.access_token, { res.cookie('access_token', k.access_token, {
httpOnly: true, httpOnly: true,
secure: false, // set to true if you're on HTTPS secure: true, // set to true if you're on HTTPS
sameSite: 'lax', // adjust based on your needs (strict, lax , none) sameSite: 'none', // adjust based on your needs (strict, lax , none)
maxAge: 90 * 1000, // convert seconds to ms if applicable maxAge: 90 * 1000, // convert seconds to ms if applicable
path: '/' path: '/'
}); });
@ -81,8 +83,8 @@ export class AuthController {
if (k.refresh_token) { if (k.refresh_token) {
res.cookie('refresh_token', k.refresh_token, { res.cookie('refresh_token', k.refresh_token, {
httpOnly: true, httpOnly: true,
secure: false, // set to true if you're on HTTPS secure: true, // set to true if you're on HTTPS
sameSite: 'lax', // adjust based on your needs (strict, lax , none) sameSite: 'none', // adjust based on your needs (strict, lax , none)
maxAge: 90 * 1000, // convert seconds to ms if applicable maxAge: 90 * 1000, // convert seconds to ms if applicable
path: '/' path: '/'
}); });

View File

@ -7,5 +7,6 @@ import { DbModule } from 'src/db/db.module';
imports: [DbModule], imports: [DbModule],
providers: [AuthService], providers: [AuthService],
controllers: [AuthController], controllers: [AuthController],
exports: [AuthService]
}) })
export class AuthModule { } export class AuthModule { }

View File

@ -1,4 +1,4 @@
import { BadRequestException, Injectable, InternalServerErrorException } from '@nestjs/common'; import { Injectable, InternalServerErrorException } from '@nestjs/common';
import { OracleDBService } from 'src/db/db.service'; import { OracleDBService } from 'src/db/db.service';
import { AuthLoginDTO } from './auth.dto'; import { AuthLoginDTO } from './auth.dto';
import * as oracledb from 'oracledb'; import * as oracledb from 'oracledb';
@ -9,6 +9,7 @@ import * as jwkToPem from "jwk-to-pem"
import * as jwt from "jsonwebtoken" import * as jwt from "jsonwebtoken"
import { UnauthorizedException } from 'src/exceptions/unauthorized.exception'; import { UnauthorizedException } from 'src/exceptions/unauthorized.exception';
import { ConflictException } from 'src/exceptions/conflict.exception'; import { ConflictException } from 'src/exceptions/conflict.exception';
import { BadRequestException } from 'src/exceptions/badRequest.exception';
@Injectable() @Injectable()
export class AuthService { export class AuthService {
@ -98,17 +99,15 @@ export class AuthService {
await cursor.close(); await cursor.close();
} else { } else {
throw new BadRequestException({ throw new BadRequestException('Error executing request try after some time!');
Error: 'Error executing request try after some time!',
});
} }
if (rows[0]['ERRORMESG']) { if (rows[0]['ERRORMESG']) {
throw new BadRequestException({ error: 'Invalid username or password!' }); throw new BadRequestException('Invalid username or password!');
} }
return { msg: 'Logged in successfully' }; return { msg: 'Logged in successfully' };
} catch (err) { } catch (err) {
throw new BadRequestException({ error: 'Invalid username or password' }); throw new BadRequestException('Invalid username or password');
} }
finally { finally {
if (connection) { if (connection) {
@ -157,6 +156,8 @@ export class AuthService {
const introspection = await this.introspectToken(token); const introspection = await this.introspectToken(token);
console.log("introspection : ", introspection.active, " : so Unauthorized!");
if (!introspection.active) { if (!introspection.active) {
throw new Error('Unauthorized'); throw new Error('Unauthorized');
} }
@ -188,7 +189,7 @@ export class AuthService {
const accessToken = req.cookies['access_token']; const accessToken = req.cookies['access_token'];
const refreshToken = req.cookies['refresh_token']; const refreshToken = req.cookies['refresh_token'];
if (!accessToken && !refreshToken) { // if (!accessToken && !refreshToken) {
const params = new URLSearchParams(); const params = new URLSearchParams();
params.append('grant_type', 'password'); params.append('grant_type', 'password');
@ -211,11 +212,11 @@ export class AuthService {
throw new BadRequestException('Invalid username or password'); throw new BadRequestException('Invalid username or password');
} }
} // }
else if (accessToken && refreshToken) { // else if (accessToken && refreshToken) {
return { access_token: accessToken, refresh_token: refreshToken, email: username } // return { access_token: accessToken, refresh_token: refreshToken, email: username }
} // }
} }
async getUserIdByEmail(email: string) { async getUserIdByEmail(email: string) {
@ -385,7 +386,7 @@ export class AuthService {
}); });
return { statusCode: 200, message: 'Logged-Out successfully' }; return { statusCode: 200, message: 'Logged-Out successfully' };
} catch (error) { } catch (error) {
throw new UnauthorizedException('Logout failed'); throw new InternalServerErrorException('Logout failed');
} }
} }

View File

@ -34,7 +34,7 @@ export class JwtAuthGuard implements CanActivate {
request.user = decoded; request.user = decoded;
return true; return true;
} catch (err) { } catch (err) {
console.log(err.message); console.log("error in jwt-auth guard below decode : ",err.message);
throw new UnauthorizedException({ throw new UnauthorizedException({
message: 'Invalid Token', message: 'Invalid Token',

48
src/guards/roles.guard.ts Normal file
View File

@ -0,0 +1,48 @@
// roles.guard.ts
import {
CanActivate,
ExecutionContext,
Injectable,
ForbiddenException,
} from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { ROLES_KEY } from '../decorators/roles.decorator';
import * as jwt from 'jsonwebtoken';
import { UnauthorizedException } from 'src/exceptions/unauthorized.exception';
@Injectable()
export class RolesGuard implements CanActivate {
constructor(private reflector: Reflector) { }
canActivate(context: ExecutionContext): boolean {
const requiredRoles = this.reflector.getAllAndOverride<string[]>(ROLES_KEY, [
context.getHandler(),
context.getClass(),
]);
if (!requiredRoles || requiredRoles.length === 0) return true;
const request = context.switchToHttp().getRequest();
const token = request.cookies?.access_token; // Token is stored as HttpOnly cookie
if (!token) {
throw new UnauthorizedException('Authentication Failed');
}
try {
const decoded: any = jwt.decode(token);
const roles: string[] = decoded?.resource_access?.['carnet-app']?.roles || [];
const hasRole = requiredRoles.some(role => roles.includes(role));
if (!hasRole) {
throw new ForbiddenException('Unauthorized : Please Request Access for this Resource');
}
return true;
} catch (err: any) {
console.log("from roles guard : ", err.message);
throw new UnauthorizedException('Authentication Failed');
}
}
}

View File

@ -4,19 +4,29 @@ import {
NestInterceptor, NestInterceptor,
ExecutionContext, ExecutionContext,
CallHandler, CallHandler,
BadRequestException,
} from '@nestjs/common'; } from '@nestjs/common';
import { Observable } from 'rxjs'; import { Observable, of } from 'rxjs';
@Injectable() @Injectable()
export class LogoutInterceptor implements NestInterceptor { export class LogoutInterceptor implements NestInterceptor {
intercept(context: ExecutionContext, next: CallHandler): Observable<any> { intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
const request = context.switchToHttp().getRequest(); const request = context.switchToHttp().getRequest();
const response = context.switchToHttp().getResponse();
const refreshToken = request.cookies?.refresh_token; const refreshToken = request.cookies?.refresh_token;
if (!refreshToken) { if (!refreshToken) {
throw new BadRequestException('Refresh token not found in cookies'); // Send a custom 200 response when refresh token is missing
response.clearCookie('access_token');
response.clearCookie('refresh_token');
response.status(200).json({
statusCode: 200,
message: 'Logged-Out successfully',
});
// Prevent further handling
return of(null);
} }
// Attach refresh token to request object for later use // Attach refresh token to request object for later use

View File

@ -14,10 +14,11 @@ async function bootstrap() {
logger: ['error', 'warn'], logger: ['error', 'warn'],
cors: { cors: {
// origin: 'https://dev.alphaomegainfosys.com/', // origin: 'https://dev.alphaomegainfosys.com/',
origin: '*', origin: ['http://localhost:3000', 'http://localhost:5173'],
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false, preflightContinue: false,
optionsSuccessStatus: 204, optionsSuccessStatus: 204,
credentials: true,
}, },
}); });

View File

@ -1,4 +1,4 @@
import { Body, Controller, Patch, Post, Put } from '@nestjs/common'; import { Body, Controller, Patch, Post, Put, UseGuards } from '@nestjs/common';
import { CarnetApplicationService } from './carnet-application.service'; import { CarnetApplicationService } from './carnet-application.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
@ -12,9 +12,12 @@ import {
UpdateShippingDetailsDTO UpdateShippingDetailsDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Carnet Application - Oracle') @ApiTags('Carnet Application - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ca', 'sa') @Roles('ca', 'sa')
@Controller('oracle') @Controller('oracle')
export class CarnetApplicationController { export class CarnetApplicationController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { CarnetApplicationController } from './carnet-application.controller'; import { CarnetApplicationController } from './carnet-application.controller';
import { CarnetApplicationService } from './carnet-application.service'; import { CarnetApplicationService } from './carnet-application.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [CarnetApplicationController], controllers: [CarnetApplicationController],
providers: [CarnetApplicationService] providers: [CarnetApplicationService]
}) })

View File

@ -2,6 +2,7 @@ import {
Get, Get,
Param, Param,
Controller, Controller,
UseGuards,
} from '@nestjs/common'; } from '@nestjs/common';
import { HomePageService } from './home-page.service'; import { HomePageService } from './home-page.service';
@ -13,8 +14,11 @@ import {
USERID_DTO USERID_DTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('HomePage - Oracle') @ApiTags('HomePage - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ca', 'sa', 'ua') @Roles('ca', 'sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class HomePageController { export class HomePageController {

View File

@ -2,9 +2,10 @@ import { Module } from '@nestjs/common';
import { HomePageService } from './home-page.service'; import { HomePageService } from './home-page.service';
import { HomePageController } from './home-page.controller'; import { HomePageController } from './home-page.controller';
import { DbModule } from 'src/db/db.module'; import { DbModule } from 'src/db/db.module';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [DbModule], imports: [DbModule,AuthModule],
providers: [HomePageService], providers: [HomePageService],
controllers: [HomePageController], controllers: [HomePageController],
}) })

View File

@ -1,4 +1,4 @@
import { Body, Controller, Get, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Patch, Post, Put, Query, UseGuards } from '@nestjs/common';
import { ManageClientsService } from './manage-clients.service'; import { ManageClientsService } from './manage-clients.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
@ -10,8 +10,11 @@ import {
GetPreparersParamDTO, GetPreparersQueryDTO, UpdateClientContactsDTO, UpdateClientDTO, UpdateClientLocationsDTO GetPreparersParamDTO, GetPreparersQueryDTO, UpdateClientContactsDTO, UpdateClientDTO, UpdateClientLocationsDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Manage Clients - Oracle') @ApiTags('Manage Clients - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa') @Roles('sa')
@Controller('oracle') @Controller('oracle')
export class ManageClientsController { export class ManageClientsController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ManageClientsController } from './manage-clients.controller'; import { ManageClientsController } from './manage-clients.controller';
import { ManageClientsService } from './manage-clients.service'; import { ManageClientsService } from './manage-clients.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [ManageClientsController], controllers: [ManageClientsController],
providers: [ManageClientsService], providers: [ManageClientsService],
}) })

View File

@ -1,4 +1,4 @@
import { Body, Controller, Get, Param, Patch, Post, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Patch, Post, Query, UseGuards } from '@nestjs/common';
import { ManageFeeService } from './manage-fee.service'; import { ManageFeeService } from './manage-fee.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
@ -8,8 +8,11 @@ import {
UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO UpdateCargoRateDTO, UpdateCfFeeDTO, UpdateCsFeeDTO, UpdateEfFeeDTO, UpdateFeeCommDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Manage Fee - Oracle') @ApiTags('Manage Fee - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa','ua') @Roles('sa','ua')
@Controller('oracle') @Controller('oracle')
export class ManageFeeController { export class ManageFeeController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ManageFeeController } from './manage-fee.controller'; import { ManageFeeController } from './manage-fee.controller';
import { ManageFeeService } from './manage-fee.service'; import { ManageFeeService } from './manage-fee.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [ManageFeeController], controllers: [ManageFeeController],
providers: [ManageFeeService], providers: [ManageFeeService],
}) })

View File

@ -8,6 +8,7 @@ import {
Patch, Patch,
Post, Post,
Put, Put,
UseGuards,
} from '@nestjs/common'; } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { ManageHoldersService } from './manage-holders.service'; import { ManageHoldersService } from './manage-holders.service';
@ -18,8 +19,11 @@ import {
HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO HolderContactActivateOrInactivateDTO, SearchHolderDTO, UpdateHolderContactDTO, UpdateHolderDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Manage Holders - Oracle') @ApiTags('Manage Holders - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ca', 'sa') @Roles('ca', 'sa')
@Controller('oracle') @Controller('oracle')
export class ManageHoldersController { export class ManageHoldersController {

View File

@ -2,10 +2,11 @@ import { Module } from '@nestjs/common';
import { ManageHoldersService } from './manage-holders.service'; import { ManageHoldersService } from './manage-holders.service';
import { ManageHoldersController } from './manage-holders.controller'; import { ManageHoldersController } from './manage-holders.controller';
import { DbModule } from 'src/db/db.module'; import { DbModule } from 'src/db/db.module';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [DbModule], imports: [DbModule, AuthModule],
providers: [ManageHoldersService], providers: [ManageHoldersService],
controllers: [ManageHoldersController], controllers: [ManageHoldersController]
}) })
export class ManageHoldersModule { } export class ManageHoldersModule { }

View File

@ -9,6 +9,7 @@ import { ManageClientsModule } from './manage-clients/manage-clients.module';
import { UserMaintenanceModule } from './user-maintenance/user-maintenance.module'; import { UserMaintenanceModule } from './user-maintenance/user-maintenance.module';
import { CarnetApplicationModule } from './carnet-application/carnet-application.module'; import { CarnetApplicationModule } from './carnet-application/carnet-application.module';
import { OracleService } from './oracle.service'; import { OracleService } from './oracle.service';
import { AuthModule } from 'src/auth/auth.module';
@Global() @Global()
@Module({ @Module({

View File

@ -1,4 +1,4 @@
import { Body, Controller, Get, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Get, Patch, Post, Put, Query, UseGuards } from '@nestjs/common';
import { ApiQuery, ApiTags } from '@nestjs/swagger'; import { ApiQuery, ApiTags } from '@nestjs/swagger';
import { ParamTableService } from './param-table.service'; import { ParamTableService } from './param-table.service';
@ -7,6 +7,8 @@ import {
getParamValuesDTO, UpdateParamRecordDTO getParamValuesDTO, UpdateParamRecordDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Param Table - Oracle') @ApiTags('Param Table - Oracle')
@Roles('sa', 'ua') @Roles('sa', 'ua')
@ -16,6 +18,7 @@ export class ParamTableController {
@Get('/GetParamValues') @Get('/GetParamValues')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ca', 'sa', 'ua') @Roles('ca', 'sa', 'ua')
@ApiQuery({ @ApiQuery({
name: 'P_SPID', name: 'P_SPID',

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ParamTableController } from './param-table.controller'; import { ParamTableController } from './param-table.controller';
import { ParamTableService } from './param-table.service'; import { ParamTableService } from './param-table.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [ParamTableController], controllers: [ParamTableController],
providers: [ParamTableService], providers: [ParamTableService],
}) })

View File

@ -1,11 +1,14 @@
import { Body, Controller, Get, Param, Post, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Post, Query, UseGuards } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { CarnetSequenceService } from './carnet-sequence.service'; import { CarnetSequenceService } from './carnet-sequence.service';
import { SPID_DTO, CreateCarnetSequenceDTO } from 'src/dto/property.dto'; import { SPID_DTO, CreateCarnetSequenceDTO } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Carnet Sequence - Oracle') @ApiTags('Carnet Sequence - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa', 'ua') @Roles('sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class CarnetSequenceController { export class CarnetSequenceController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { CarnetSequenceController } from './carnet-sequence.controller'; import { CarnetSequenceController } from './carnet-sequence.controller';
import { CarnetSequenceService } from './carnet-sequence.service'; import { CarnetSequenceService } from './carnet-sequence.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [CarnetSequenceController], controllers: [CarnetSequenceController],
providers: [CarnetSequenceService], providers: [CarnetSequenceService],
}) })

View File

@ -1,13 +1,16 @@
import { RegionService } from './region.service'; import { RegionService } from './region.service';
import { Get, Post, Body, Controller, Patch } from '@nestjs/common'; import { Get, Post, Body, Controller, Patch, UseGuards } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { InsertRegionsDto, UpdateRegionDto } from 'src/dto/property.dto'; import { InsertRegionsDto, UpdateRegionDto } from 'src/dto/property.dto';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('Regions - Oracle') @ApiTags('Regions - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa', 'ua') @Roles('sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class RegionController { export class RegionController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { RegionController } from './region.controller'; import { RegionController } from './region.controller';
import { RegionService } from './region.service'; import { RegionService } from './region.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [RegionController], controllers: [RegionController],
providers: [RegionService], providers: [RegionService],
}) })

View File

@ -1,5 +1,5 @@
import { SpContactsService } from './sp-contacts.service'; import { SpContactsService } from './sp-contacts.service';
import { Body, Controller, Get, Param, Patch, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Patch, Post, Put, Query, UseGuards } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
@ -8,8 +8,11 @@ import {
SP_CONTACTID_DTO, SP_CONTACTID_DTO,
InsertSPContactsDTO, UpdateSPContactsDTO InsertSPContactsDTO, UpdateSPContactsDTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('SPContacts - Oracle') @ApiTags('SPContacts - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa', 'ua') @Roles('sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class SpContactsController { export class SpContactsController {

View File

@ -2,9 +2,10 @@ import { Module } from '@nestjs/common';
import { SpContactsService } from './sp-contacts.service'; import { SpContactsService } from './sp-contacts.service';
import { SpContactsController } from './sp-contacts.controller'; import { SpContactsController } from './sp-contacts.controller';
import { DbModule } from 'src/db/db.module'; import { DbModule } from 'src/db/db.module';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [DbModule], imports: [DbModule,AuthModule],
providers: [SpContactsService], providers: [SpContactsService],
controllers: [SpContactsController], controllers: [SpContactsController],
}) })

View File

@ -1,4 +1,4 @@
import { Body, Controller, Get, Param, Post, Put, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Post, Put, Query, UseGuards } from '@nestjs/common';
import { SpService } from './sp.service'; import { SpService } from './sp.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
@ -7,8 +7,11 @@ import {
UpdateServiceProviderDTO, UpdateServiceProviderDTO,
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('SP - Oracle') @ApiTags('SP - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('sa', 'ua') @Roles('sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class SpController { export class SpController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { SpController } from './sp.controller'; import { SpController } from './sp.controller';
import { SpService } from './sp.service'; import { SpService } from './sp.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [SpController], controllers: [SpController],
providers: [SpService], providers: [SpService],
}) })

View File

@ -1,4 +1,4 @@
import { Body, Controller, Get, Param, Patch, Post, Query } from '@nestjs/common'; import { Body, Controller, Get, Param, Patch, Post, Query, UseGuards } from '@nestjs/common';
import { UserMaintenanceService } from './user-maintenance.service'; import { UserMaintenanceService } from './user-maintenance.service';
import { ApiTags } from '@nestjs/swagger'; import { ApiTags } from '@nestjs/swagger';
@ -8,8 +8,11 @@ import {
CreateClientLoginsDTO, CreateSPLoginsDTO, CreateUSCIBLoginsDTO, SPID_CLIENTID_DTO, SPID_EMAIL_DTO CreateClientLoginsDTO, CreateSPLoginsDTO, CreateUSCIBLoginsDTO, SPID_CLIENTID_DTO, SPID_EMAIL_DTO
} from 'src/dto/property.dto'; } from 'src/dto/property.dto';
import { Roles } from 'src/decorators/roles.decorator'; import { Roles } from 'src/decorators/roles.decorator';
import { JwtAuthGuard } from 'src/guards/jwt-auth.guard';
import { RolesGuard } from 'src/guards/roles.guard';
@ApiTags('User Maintenance - Oracle') @ApiTags('User Maintenance - Oracle')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ca', 'sa', 'ua') @Roles('ca', 'sa', 'ua')
@Controller('oracle') @Controller('oracle')
export class UserMaintenanceController { export class UserMaintenanceController {

View File

@ -1,8 +1,10 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { UserMaintenanceController } from './user-maintenance.controller'; import { UserMaintenanceController } from './user-maintenance.controller';
import { UserMaintenanceService } from './user-maintenance.service'; import { UserMaintenanceService } from './user-maintenance.service';
import { AuthModule } from 'src/auth/auth.module';
@Module({ @Module({
imports: [AuthModule],
controllers: [UserMaintenanceController], controllers: [UserMaintenanceController],
providers: [UserMaintenanceService] providers: [UserMaintenanceService]
}) })