Skip to content

Commit 25dbd70

Browse files
committed
Update @streamkits/nestjs_module_scrud to version 0.0.17 in package.json
1 parent 273a7b2 commit 25dbd70

File tree

6 files changed

+120
-42
lines changed

6 files changed

+120
-42
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"@nestjs/passport": "^10.0.3",
5959
"@nestjs/platform-express": "^10.3.1",
6060
"@nestjs/swagger": "^7.1.16",
61-
"@streamkits/nestjs_module_scrud": "^0.0.16",
61+
"@streamkits/nestjs_module_scrud": "^0.0.17",
6262
"ajv": "^8.12.0",
6363
"ajv-errors": "^3.0.0",
6464
"argon2": "^0.40.1",

src/core/auth/auth.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ export class AuthService extends AbstractService implements OnModuleInit {
8282

8383
// eslint-disable-next-line
8484
public async verifyIdentity(payload: any & { identity: AgentType & { token: string } }): Promise<any> {
85+
this.logger.debug(`Atempt to authenticate with JTI: <${payload.jti}>`);
8586
if (payload.scopes.includes('offline')) {
8687
return payload.identity;
8788
}
@@ -94,7 +95,7 @@ export class AuthService extends AbstractService implements OnModuleInit {
9495
if (identity) {
9596
return identity.toObject();
9697
}
97-
} catch (e) {}
98+
} catch (e) { }
9899
return null;
99100
}
100101
try {

src/core/jobs/_dto/jobs.dto.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { ApiProperty, PartialType } from '@nestjs/swagger';
2+
import { IsMongoId, IsObject, IsString } from 'class-validator';
3+
import { Types } from 'mongoose';
4+
import { CustomFieldsDto } from '~/_common/abstracts/dto/custom-fields.dto';
5+
6+
export class JobsCreateDto extends CustomFieldsDto {
7+
@IsString()
8+
@ApiProperty()
9+
public jobId: string;
10+
11+
@IsString()
12+
@ApiProperty()
13+
public action: string;
14+
15+
@IsMongoId()
16+
@ApiProperty()
17+
public concernedTo: Types.ObjectId;
18+
19+
@IsMongoId()
20+
@ApiProperty()
21+
public task: Types.ObjectId;
22+
23+
@IsString()
24+
@ApiProperty()
25+
public comment: string;
26+
27+
@IsObject()
28+
@ApiProperty()
29+
public params: object;
30+
31+
@IsObject()
32+
@ApiProperty()
33+
public result: object;
34+
}
35+
36+
export class JobsDto extends JobsCreateDto {
37+
@IsMongoId()
38+
@ApiProperty({ type: String })
39+
public _id: string;
40+
}
41+
42+
export class JobsUpdateDto extends PartialType(JobsCreateDto) { }

src/core/jobs/jobs.controller.ts

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,65 @@
1-
import { Controller } from '@nestjs/common';
2-
import { JobsService } from './jobs.service';
1+
import { Controller, Get, HttpStatus, Param, Res } from '@nestjs/common';
2+
import { ApiParam, ApiTags } from '@nestjs/swagger';
3+
import { FilterOptions, FilterSchema, SearchFilterOptions, SearchFilterSchema } from '@streamkits/nestjs_module_scrud';
4+
import { Response } from 'express';
5+
import { Types } from 'mongoose';
36
import { AbstractController } from '~/_common/abstracts/abstract.controller';
7+
import { ApiPaginatedDecorator } from '~/_common/decorators/api-paginated.decorator';
8+
import { ApiReadResponseDecorator } from '~/_common/decorators/api-read-response.decorator';
9+
import { PickProjectionHelper } from '~/_common/helpers/pick-projection.helper';
10+
import { ObjectIdValidationPipe } from '~/_common/pipes/object-id-validation.pipe';
11+
import { PartialProjectionType } from '~/_common/types/partial-projection.type';
12+
import { JobsDto } from './_dto/jobs.dto';
13+
import { JobsService } from './jobs.service';
414

5-
@Controller('tasks')
6-
export class TasksController extends AbstractController {
7-
constructor(private readonly _service: JobsService) {
15+
@ApiTags('core')
16+
@Controller('jobs')
17+
export class JobsController extends AbstractController {
18+
protected static readonly projection: PartialProjectionType<JobsDto> = {
19+
jobId: 1,
20+
action: 1,
21+
concernedTo: 1,
22+
params: 1,
23+
result: 1,
24+
};
25+
26+
public constructor(private readonly _service: JobsService) {
827
super();
928
}
29+
30+
@Get()
31+
@ApiPaginatedDecorator(PickProjectionHelper(JobsDto, JobsController.projection))
32+
public async search(
33+
@Res() res: Response,
34+
@SearchFilterSchema({ unsafe: true }) searchFilterSchema: FilterSchema,
35+
@SearchFilterOptions() searchFilterOptions: FilterOptions,
36+
): Promise<Response> {
37+
//TODO: search tree by parentId
38+
const [data, total] = await this._service.findAndCount(
39+
searchFilterSchema,
40+
JobsController.projection,
41+
searchFilterOptions,
42+
);
43+
return res.status(HttpStatus.OK).json({
44+
statusCode: HttpStatus.OK,
45+
total,
46+
data,
47+
});
48+
}
49+
50+
@Get(':_id([0-9a-fA-F]{24})')
51+
@ApiParam({ name: '_id', type: String })
52+
@ApiReadResponseDecorator(JobsDto)
53+
public async read(
54+
@Param('_id', ObjectIdValidationPipe) _id: Types.ObjectId,
55+
@Res() res: Response,
56+
): Promise<Response> {
57+
const data = await this._service.findById(_id, {
58+
password: 0,
59+
});
60+
return res.status(HttpStatus.OK).json({
61+
statusCode: HttpStatus.OK,
62+
data,
63+
});
64+
}
1065
}

src/core/jobs/jobs.module.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Module } from '@nestjs/common';
22
import { MongooseModule } from '@nestjs/mongoose';
3-
import { JobsSchema, Jobs } from './_schemas/jobs.schema';
3+
import { Jobs, JobsSchema } from './_schemas/jobs.schema';
4+
import { JobsController } from './jobs.controller';
45
import { JobsService } from './jobs.service';
5-
import { TasksController } from './jobs.controller';
66

77
@Module({
88
imports: [
@@ -14,7 +14,7 @@ import { TasksController } from './jobs.controller';
1414
]),
1515
],
1616
providers: [JobsService],
17-
controllers: [TasksController],
17+
controllers: [JobsController],
1818
exports: [JobsService],
1919
})
20-
export class JobsModule {}
20+
export class JobsModule { }

yarn.lock

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,11 +1361,6 @@
13611361
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
13621362
integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
13631363

1364-
"@inquirer/figures@^1.0.1":
1365-
version "1.0.1"
1366-
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.1.tgz#d65f0bd0e9511a90b4d3543ee6a3ce7211f29417"
1367-
integrity sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==
1368-
13691364
"@ioredis/commands@^1.1.1":
13701365
version "1.2.0"
13711366
resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11"
@@ -1649,7 +1644,7 @@
16491644
"@angular-eslint/schematics" "^15.0.0-alpha.5"
16501645
"@angular/cli" "^15.2.6"
16511646

1652-
"@ljharb/through@^2.3.11", "@ljharb/through@^2.3.13":
1647+
"@ljharb/through@^2.3.11":
16531648
version "2.3.13"
16541649
resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.13.tgz#b7e4766e0b65aa82e529be945ab078de79874edc"
16551650
integrity sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==
@@ -2052,16 +2047,17 @@
20522047
dependencies:
20532048
"@sinonjs/commons" "^3.0.0"
20542049

2055-
"@streamkits/nestjs_module_scrud@^0.0.16":
2056-
version "0.0.16"
2057-
resolved "https://registry.yarnpkg.com/@streamkits/nestjs_module_scrud/-/nestjs_module_scrud-0.0.16.tgz#06c4b04c99fcaa583d198510d990c67e7896d7e2"
2058-
integrity sha512-GtqfglZUSWE/1OgYaYrjo3jNA8Xj8vlC7b7uzHmz8MBM+gd4FP1OnRBlTTh7KJ3FvDgzY0/qWVt8PimOqR1lnw==
2050+
"@streamkits/nestjs_module_scrud@^0.0.17":
2051+
version "0.0.17"
2052+
resolved "https://registry.yarnpkg.com/@streamkits/nestjs_module_scrud/-/nestjs_module_scrud-0.0.17.tgz#4a6b5ab082081ef6123dea2b683f38d78d421684"
2053+
integrity sha512-KgXH76YEqQ8gsAPePA4dnzY3E0enGNZR1LjibETZzEE0DwnN1Td8/m0xiM3IbdcAqSebNuyU+WzIxWXwSO6X7g==
20592054
dependencies:
20602055
class-transformer "^0.5.1"
20612056
class-validator "^0.14.0"
20622057
dayjs "^1.11.7"
20632058
decorator "^0.0.1"
20642059
deepmerge "^4.3.1"
2060+
is-plain-object "^5.0.0"
20652061

20662062
"@swc/cli@^0.3.10":
20672063
version "0.3.10"
@@ -5702,27 +5698,6 @@ inquirer@9.2.12:
57025698
strip-ansi "^6.0.1"
57035699
wrap-ansi "^6.2.0"
57045700

5705-
inquirer@^9.2.19:
5706-
version "9.2.19"
5707-
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.19.tgz#e142ebc111b6328a21eb84d8e7dd226ff824239e"
5708-
integrity sha512-WpxOT71HGsFya6/mj5PUue0sWwbpbiPfAR+332zLj/siB0QA1PZM8v3GepegFV1Op189UxHUCF6y8AySdtOMVA==
5709-
dependencies:
5710-
"@inquirer/figures" "^1.0.1"
5711-
"@ljharb/through" "^2.3.13"
5712-
ansi-escapes "^4.3.2"
5713-
chalk "^5.3.0"
5714-
cli-cursor "^3.1.0"
5715-
cli-width "^4.1.0"
5716-
external-editor "^3.1.0"
5717-
lodash "^4.17.21"
5718-
mute-stream "1.0.0"
5719-
ora "^5.4.1"
5720-
run-async "^3.0.0"
5721-
rxjs "^7.8.1"
5722-
string-width "^4.2.3"
5723-
strip-ansi "^6.0.1"
5724-
wrap-ansi "^6.2.0"
5725-
57265701
internal-slot@^1.0.4:
57275702
version "1.0.7"
57285703
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
@@ -5896,6 +5871,11 @@ is-plain-obj@^1.0.0:
58965871
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
58975872
integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
58985873

5874+
is-plain-object@^5.0.0:
5875+
version "5.0.0"
5876+
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
5877+
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
5878+
58995879
is-regex@^1.1.4:
59005880
version "1.1.4"
59015881
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"

0 commit comments

Comments
 (0)