Skip to content

Commit 10d8b52

Browse files
authored
Merge branch 'development' into fix/th-294-user-unlogging-when-server-is-dead
2 parents bb9e8a7 + dc73c6a commit 10d8b52

File tree

10 files changed

+94
-52
lines changed

10 files changed

+94
-52
lines changed

backend/src/libs/packages/database/generated-schema/0012_add_businessId_to_trucks.sql

Lines changed: 0 additions & 9 deletions
This file was deleted.

backend/src/packages/orders/order.controller.ts

Lines changed: 74 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ import {
9090
* startPoint:
9191
* type: string
9292
* minLength: 1
93-
* example: A
93+
* example: "{ \"lat\": \"-34.655\", \"lng\": \"150.590\" }"
9494
* endPoint:
9595
* type: string
9696
* minLength: 1
97-
* example: B
97+
* example: "{ \"lat\": \"-34.655\", \"lng\": \"150.590\" }"
9898
* status:
9999
* type: string
100100
* enum: [pending, confirmed, cancelled, done]
@@ -109,11 +109,6 @@ import {
109109
* format: number
110110
* minimum: 1
111111
* example: 1
112-
* driverId:
113-
* type: number
114-
* format: number
115-
* minimum: 1
116-
* example: 1
117112
* customerName:
118113
* type: string
119114
* pattern: ^[A-Za-z][\s'A-Za-z-]{0,39}$
@@ -124,6 +119,45 @@ import {
124119
* pattern: ^\+\d{8,19}$
125120
* nullable: true
126121
* example: +123456789
122+
* shift:
123+
* type: object
124+
* properties:
125+
* id:
126+
* type: number
127+
* minimum: 1
128+
* example: 1
129+
* driver:
130+
* type: object
131+
* properties:
132+
* id:
133+
* type: number
134+
* minimum: 1
135+
* example: 1
136+
* firstName:
137+
* $ref: '#/components/schemas/Customer-sign-up-request/properties/firstName'
138+
* lastName:
139+
* $ref: '#/components/schemas/Customer-sign-up-request/properties/lastName'
140+
* phone:
141+
* $ref: '#/components/schemas/Customer-sign-up-request/properties/phone'
142+
* email:
143+
* $ref: '#/components/schemas/Customer-sign-up-request/properties/email'
144+
* driverLicenseNumber:
145+
* type: string
146+
* minLength: 10
147+
* example: AAA 123456
148+
* truck:
149+
* type: object
150+
* properties:
151+
* id:
152+
* type: number
153+
* minimum: 1
154+
* example: 1
155+
* licensePlateNumber:
156+
* type: string
157+
* minLength: 3
158+
* maxLength: 10
159+
* pattern: ^(?!.*\\s)[\\dA-ZЁА-Я-]{3,10}}$
160+
* example: DD1111RR
127161
*
128162
* CreateOrderWithRegisteredUser:
129163
* type: object
@@ -187,6 +221,27 @@ import {
187221
* type: string
188222
* enum:
189223
* - Driver does not exist!
224+
*
225+
* TruckNotExistError:
226+
* allOf:
227+
* - $ref: '#/components/schemas/ErrorType'
228+
* - type: object
229+
* properties:
230+
* message:
231+
* type: string
232+
* enum:
233+
* - Truck does not exist!
234+
*
235+
* ShiftNotOpenError:
236+
* allOf:
237+
* - $ref: '#/components/schemas/ErrorType'
238+
* - type: object
239+
* properties:
240+
* message:
241+
* type: string
242+
* enum:
243+
* - This truck is not inactive, please choose another one!
244+
*
190245
* BusinessNotExistError:
191246
* allOf:
192247
* - $ref: '#/components/schemas/ErrorType'
@@ -338,16 +393,16 @@ class OrderController extends Controller {
338393
* application/json:
339394
* schema:
340395
* $ref: '#/components/schemas/Order'
341-
* 400:
396+
* 404:
342397
* description:
343398
* Order creation error
344399
* content:
345400
* application/json:
346401
* schema:
347402
* oneOf:
348403
* - $ref: '#/components/schemas/DriverNotExistError'
349-
* - $ref: '#/components/schemas/OrderCreationError'
350-
*
404+
* - $ref: '#/components/schemas/TruckNotExistError'
405+
* - $ref: '#/components/schemas/ShiftNotOpenError'
351406
*/
352407
private async create(
353408
options: ApiHandlerOptions<{
@@ -460,7 +515,10 @@ class OrderController extends Controller {
460515
* content:
461516
* plain/text:
462517
* schema:
463-
* $ref: '#/components/schemas/OrderDoesNotExist'
518+
* oneOf:
519+
* - $ref: '#/components/schemas/OrderDoesNotExist'
520+
* - $ref: '#/components/schemas/TruckNotExistError'
521+
* - $ref: '#/components/schemas/DriverNotExistError'
464522
* 401:
465523
* UnauthorizedError:
466524
* description:
@@ -505,10 +563,7 @@ class OrderController extends Controller {
505563
* schema:
506564
* type: array
507565
* items:
508-
* type: object
509-
* properties:
510-
* items:
511-
* $ref: '#/components/schemas/Order'
566+
* $ref: '#/components/schemas/Order'
512567
* 401:
513568
* UnauthorizedError:
514569
* description:
@@ -517,7 +572,7 @@ class OrderController extends Controller {
517572
* plain/text:
518573
* schema:
519574
* $ref: '#/components/schemas/UnauthorizedError'
520-
* 400:
575+
* 404:
521576
* UnauthorizedError:
522577
* description:
523578
* You are not authorized
@@ -569,7 +624,9 @@ class OrderController extends Controller {
569624
* content:
570625
* plain/text:
571626
* schema:
572-
* $ref: '#/components/schemas/OrderDoesNotExist'
627+
* oneOf:
628+
* - $ref: '#/components/schemas/OrderDoesNotExist'
629+
* - $ref: '#/components/schemas/BusinessDoesNotExist'
573630
* 401:
574631
* UnauthorizedError:
575632
* description:

backend/src/packages/shifts/shift.controller.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class ShiftController extends Controller {
3939
this.addRoute({
4040
path: ShiftsApiPath.ROOT,
4141
method: 'POST',
42-
authStrategy: AuthStrategy.INJECT_USER,
42+
authStrategy: AuthStrategy.VERIFY_JWT,
4343
validation: {
4444
body: shiftCreateValidationSchema,
4545
},
@@ -55,7 +55,7 @@ class ShiftController extends Controller {
5555
this.addRoute({
5656
path: ShiftsApiPath.$ID,
5757
method: 'PUT',
58-
authStrategy: AuthStrategy.INJECT_USER,
58+
authStrategy: AuthStrategy.VERIFY_JWT,
5959
validation: {
6060
body: shiftCloseValidationSchema,
6161
},
@@ -345,7 +345,7 @@ export { ShiftController };
345345

346346
/**
347347
* @swagger
348-
* /shifts/drive/{id}:
348+
* /shifts/driver/{id}:
349349
* get:
350350
* tags:
351351
* - shifts

frontend/src/libs/components/input/input.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ const Input = <T extends FieldValues>({
6666
const toggleShowPassword = useCallback(
6767
(event: React.MouseEvent<HTMLElement>): void => {
6868
event.preventDefault();
69-
setIsPasswordShown(!isPasswordShown);
69+
setIsPasswordShown((old) => !old);
7070
},
71-
[isPasswordShown],
71+
[],
7272
);
7373

7474
const clearError = useCallback(() => {
@@ -116,6 +116,7 @@ const Input = <T extends FieldValues>({
116116
styles.passwordEye,
117117
isPasswordShown && styles.passwordEyeLight,
118118
)}
119+
type="button"
119120
onClick={toggleShowPassword}
120121
tabIndex={-1}
121122
>

frontend/src/libs/components/table/styles.module.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@
107107
cursor: pointer;
108108
}
109109

110+
.spinnerWrapper {
111+
height: 40vh;
112+
}
113+
110114
@media (hover: hover) {
111115
.resizer {
112116
opacity: 0;

frontend/src/libs/components/table/table.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type Properties<T> = {
2727
isLoading?: boolean;
2828
isTableEditable?: boolean;
2929
columns: ColumnDef<T>[];
30-
emptyTableMessage?: JSX.Element;
30+
emptyTableMessage?: string;
3131
pageSize: number;
3232
totalRow: number;
3333
pageIndex: number;
@@ -110,7 +110,9 @@ const Table = <T,>({
110110
return (
111111
<div className={styles.container}>
112112
{isLoading ? (
113-
<Spinner />
113+
<div className={styles.spinnerWrapper}>
114+
<Spinner />
115+
</div>
114116
) : (
115117
<div className={styles.wrapper}>
116118
<table

frontend/src/pages/dashboard/components/tables/drivers-table/driver-table.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,7 @@ const DriverTable: React.FC = () => {
5959
[dispatch, searchParameters, handleToggle],
6060
);
6161

62-
const message = (
63-
<div>
64-
There are no data here yet. Please,{' '}
65-
<span className={styles.red}>add new driver</span>
66-
</div>
67-
);
62+
const message = 'There are no data here yet. Please, add a driver';
6863

6964
return (
7065
<div className={styles.container}>
@@ -73,7 +68,7 @@ const DriverTable: React.FC = () => {
7368
Company Drivers
7469
</h2>
7570
<Button
76-
label="Add a Driver"
71+
label="Add Driver"
7772
className={styles.btn}
7873
onClick={handleToggle}
7974
/>

frontend/src/pages/dashboard/components/tables/drivers-table/styles.module.scss

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,3 @@
2727
.formWrapper {
2828
width: 448px;
2929
}
30-
31-
.red {
32-
color: $red;
33-
}

frontend/src/pages/dashboard/components/tables/trucks-table/styles.module.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
.title {
2222
color: $blue-extra-dark;
2323
text-align: center;
24+
text-transform: uppercase;
2425
}
2526

2627
.formWrapper {

frontend/src/pages/dashboard/components/tables/trucks-table/trucks-table.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,22 +71,17 @@ const TruckTable: React.FC = () => {
7171
[dispatch, searchParameters, handleToggle],
7272
);
7373

74-
const message = (
75-
<div>
76-
There are no data here yet. Please,{' '}
77-
<span className={styles.red}>add new driver</span>
78-
</div>
79-
);
74+
const message = 'There are no data here yet. Please, add a truck';
8075

8176
return (
8277
<>
8378
<div className={styles.container}>
8479
<div className={styles.header}>
85-
<h2 className={getValidClassNames('uppercase', styles.title)}>
80+
<h2 className={getValidClassNames('h3', styles.title)}>
8681
Company Trucks
8782
</h2>
8883
<Button
89-
label="Add a truck"
84+
label="Add Truck"
9085
className={styles.btn}
9186
onClick={handleToggle}
9287
/>

0 commit comments

Comments
 (0)