Skip to content

Commit af0d448

Browse files
committed
fix/device
1 parent 63299fc commit af0d448

File tree

7 files changed

+43
-3
lines changed

7 files changed

+43
-3
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,9 @@ Nest is [MIT licensed](LICENSE).
7676
- This project source use prisma as ORM, so to start prisma use this command: `yarn prisma init`
7777

7878
## Run docker with .env file
79+
-`docker build -t gateway-server .`
7980
-`docker run -d --name nestjs-backend --env-file .env -p 8080:8080 gateway-server`
81+
## Way to build container with docker
82+
- open gateway-db and up this db container
83+
- create network to communication between container: docker create network mysql-network
84+
- modify db url in prisma
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE `device` ADD COLUMN `pin` INTEGER NULL;

prisma/schema.prisma

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ model device {
4747
current_state Int?
4848
device_name String? @unique @db.VarChar(200)
4949
protocol String? @db.VarChar(200)
50+
pin Int? @db.Int
5051
user user? @relation(fields: [userID], references: [id], onDelete: Cascade, onUpdate: Restrict, map: "device_ibfk_1")
5152
created_at DateTime? @default(now()) @db.DateTime(0)
5253
updated_at DateTime? @default(now()) @db.DateTime(0)

src/modules/device/device.resolver.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,10 @@ export class DeviceResolver {
3636
async update_device(@Args("input") input: UpdateItemInput) {
3737
return this.deviceService.update(input);
3838
}
39+
40+
@Query(() => DevicesResponse)
41+
async devices_by_license(@Args("license") license: string) {
42+
const data = await this.deviceService.findDevicesByLicense(license);
43+
return { items: data };
44+
}
3945
}

src/modules/device/device.service.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Injectable } from "@nestjs/common";
2-
import { GraphQLError } from 'graphql';
2+
import { GraphQLError } from "graphql";
33
import { CreateDeviceInput, UpdateItemInput, CreateDevicesInput } from "./dto/input.dto";
44
import { DeviceQueryInput } from "./dto/query.dto";
55
import { PrismaService } from "../prisma/prisma.service";
66

77
@Injectable()
88
export class DeviceService {
9-
constructor(private prisma: PrismaService ) {}
9+
constructor(private prisma: PrismaService) {}
1010

1111
async create(input: CreateDeviceInput) {
1212
try {
@@ -15,6 +15,8 @@ export class DeviceService {
1515
device_name: input.device_name,
1616
current_state: input.current_state,
1717
userID: input.userID,
18+
protocol: input.protocol,
19+
pin: input.pin,
1820
},
1921
});
2022
return data;
@@ -37,6 +39,7 @@ export class DeviceService {
3739
current_state: device.current_state,
3840
userID: device.userID,
3941
protocol: device.protocol,
42+
pin: device.pin,
4043
})),
4144
});
4245
const listDevices = await this.prisma.device.findMany({
@@ -78,4 +81,19 @@ export class DeviceService {
7881
throw new GraphQLError(err);
7982
}
8083
}
84+
85+
async findDevicesByLicense(license: string) {
86+
try {
87+
const data = await this.prisma.device.findMany({
88+
where: {
89+
user: {
90+
hub_license_key: license,
91+
},
92+
},
93+
});
94+
return data;
95+
} catch (err) {
96+
throw new GraphQLError(err);
97+
}
98+
}
8199
}

src/modules/device/dto/input.dto.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ export class CreateDeviceInput {
1717
userID: number;
1818

1919
@Field(() => String, { nullable: true })
20-
@IsNumber()
20+
@IsString()
2121
protocol: string;
22+
23+
@Field(() => Number, { nullable: false })
24+
@IsNumber()
25+
pin: number;
2226
}
2327

2428
@InputType()

src/modules/device/entities/device.entity.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ export class DeviceResponse {
2323
@IsString()
2424
protocol: string;
2525

26+
@Field(() => Number, { nullable: false })
27+
@IsNumber()
28+
pin: number;
29+
2630
@Field(() => String, { nullable: true })
2731
@IsDate()
2832
created_at: Date;

0 commit comments

Comments
 (0)