Skip to content

Commit 4d6b780

Browse files
denredkalinkaaaa14
andauthored
th-239: Business Journey: Adding a new driver with generated password on be (#274)
* th-239: + send credentials * th-239: * update validation schema create driver * th-239: * fix type and validation naming * th-239: * update mail view template * th-239: * fix view template * th-239: * fix user truck constraint violation in database schema * th-239: * update password generation * th-239: * fix sign-in email link * th-239: * fix empty truckIds * th-239: * resolve comments * th-239: * fix driver create and update of request types * th-239: * fix render parameters * th-239: * fix validation add driver form * th-239: * fix placeholders add truck form --------- Co-authored-by: Alina Kupchyk <[email protected]>
1 parent f217e00 commit 4d6b780

File tree

61 files changed

+370
-130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+370
-130
lines changed

backend/src/libs/packages/controller/controller.package.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { type ServerAppRouteParameters } from '~/libs/packages/server-applicatio
33
import { type ValueOf } from '~/libs/types/types.js';
44
import { type AuthStrategy } from '~/packages/auth/auth.js';
55

6+
import { buildUrl } from './libs/helpers/build-url.helper.js';
67
import { type IController } from './libs/interfaces/interface.js';
78
import {
89
type ApiHandler,
@@ -63,14 +64,16 @@ class Controller implements IController {
6364
private mapRequest(
6465
request: Parameters<ServerAppRouteParameters['handler']>[0],
6566
): ApiHandlerOptions {
66-
const { body, query, params, user, parsedFiles } = request;
67+
const { body, query, params, user, parsedFiles, hostname, protocol } =
68+
request;
6769

6870
return {
6971
body,
7072
query,
7173
params,
7274
user,
7375
parsedFiles,
76+
hostname: buildUrl(protocol, hostname),
7477
};
7578
}
7679
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const SEPARATOR = '://';
2+
const buildUrl = (protocol: string, hostname: string): string =>
3+
`${protocol}${SEPARATOR}${hostname}`;
4+
5+
export { buildUrl };
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { buildUrl } from './build-url.helper.js';

backend/src/libs/packages/controller/libs/types/api-handler-options.type.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type ApiHandlerOptions<
1010
params: T['params'];
1111
user: undefined extends T['user'] ? UserEntityObjectWithGroupT : T['user'];
1212
parsedFiles: T['parsedFiles'];
13+
hostname: T['hostname'];
1314
};
1415

1516
export { type ApiHandlerOptions };

backend/src/libs/packages/controller/libs/types/default-api-handler-options.type.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ type DefaultApiHandlerOptions = {
66
params?: unknown;
77
user?: unknown;
88
parsedFiles?: MultipartParsedFile[];
9+
hostname?: string;
910
};
1011

1112
export { type DefaultApiHandlerOptions };
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { MailContent } from './mail-content.enum.js';
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const MailContent = {
2+
SUBJECT: 'Credentials for signing in to TowHub app',
3+
} as const;
4+
5+
export { MailContent };
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
interface IView<T extends Record<string, unknown>> {
2-
render(parameters: T): string;
1+
import { type RenderParameter } from '~/packages/mail/libs/types/render-parameter.type.js';
2+
3+
interface IView {
4+
render(parameters: RenderParameter): string;
35
}
46

57
export { type IView };

backend/src/packages/auth/auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ const authController = new AuthController(logger, authService);
2222

2323
export { authPlugin } from './auth.app-plugin.js';
2424
export { authController, authService };
25-
export { AuthStrategy } from './libs/enums/auth-strategy.enum.js';
25+
export { AuthStrategy } from './libs/enums/enums.js';

backend/src/packages/business/business.controller.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ import { type PaginationWithSortingParameters } from '~/libs/types/types.js';
1010
import { AuthStrategy } from '~/packages/auth/libs/enums/enums.js';
1111

1212
import {
13-
type DriverCreateUpdateRequestDto,
13+
type DriverCreateRequestDto,
1414
type DriverRequestParameters,
15-
} from '../drivers/drivers.js';
16-
import {
17-
driverCreateUpdateRequestBody,
15+
type DriverUpdateRequestDto,
16+
driverCreateRequestBody,
1817
driverParameters,
19-
} from '../drivers/libs/validation-schemas/validation-schemas.js';
18+
driverUpdateRequestBody,
19+
} from '../drivers/drivers.js';
2020
import { type TruckAddRequestDto } from '../trucks/libs/types/types.js';
2121
import { truckCreateRequestBody } from '../trucks/trucks.js';
2222
import { type UserEntityObjectWithGroupT } from '../users/users.js';
@@ -302,13 +302,14 @@ class BusinessController extends Controller {
302302
method: 'POST',
303303
authStrategy: defaultStrategies,
304304
validation: {
305-
body: driverCreateUpdateRequestBody,
305+
body: driverCreateRequestBody,
306306
},
307307
handler: (options) =>
308308
this.createDriver(
309309
options as ApiHandlerOptions<{
310-
body: DriverCreateUpdateRequestDto;
310+
body: DriverCreateRequestDto;
311311
user: UserEntityObjectWithGroupT;
312+
hostname: string;
312313
}>,
313314
),
314315
});
@@ -318,13 +319,13 @@ class BusinessController extends Controller {
318319
method: 'PUT',
319320
authStrategy: defaultStrategies,
320321
validation: {
321-
body: driverCreateUpdateRequestBody,
322+
body: driverUpdateRequestBody,
322323
params: driverParameters,
323324
},
324325
handler: (options) =>
325326
this.updateDriver(
326327
options as ApiHandlerOptions<{
327-
body: DriverCreateUpdateRequestDto;
328+
body: DriverUpdateRequestDto;
328329
params: DriverRequestParameters;
329330
user: UserEntityObjectWithGroupT;
330331
}>,
@@ -628,13 +629,15 @@ class BusinessController extends Controller {
628629

629630
private async createDriver(
630631
options: ApiHandlerOptions<{
631-
body: DriverCreateUpdateRequestDto;
632+
body: DriverCreateRequestDto;
632633
user: UserEntityObjectWithGroupT;
634+
hostname: string;
633635
}>,
634636
): Promise<ApiHandlerResponse> {
635637
const createdDriver = await this.businessService.createDriver(
636638
options.body,
637639
options.user.id,
640+
options.hostname,
638641
);
639642

640643
return {
@@ -700,7 +703,7 @@ class BusinessController extends Controller {
700703

701704
private async updateDriver(
702705
options: ApiHandlerOptions<{
703-
body: DriverCreateUpdateRequestDto;
706+
body: DriverUpdateRequestDto;
704707
params: DriverRequestParameters;
705708
user: UserEntityObjectWithGroupT;
706709
}>,
@@ -854,7 +857,7 @@ class BusinessController extends Controller {
854857

855858
/**
856859
* @swagger
857-
* /trucks:
860+
* /business/trucks:
858861
* post:
859862
* summary: Create a new truck
860863
* tags:

0 commit comments

Comments
 (0)