mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-11 15:48:09 +00:00
added exception filter and removed controller error handling
This commit is contained in:
@ -90,3 +90,6 @@ FIREBASE_DATABASE_URL=
|
|||||||
|
|
||||||
OTP_LIMITER=
|
OTP_LIMITER=
|
||||||
|
|
||||||
|
GOOGLE_CLIENT_ID=
|
||||||
|
|
||||||
|
GOOGLE_CLIENT_SECRET=
|
@ -1,4 +1,8 @@
|
|||||||
import { BadRequestException, Injectable } from '@nestjs/common';
|
import {
|
||||||
|
BadRequestException,
|
||||||
|
Injectable,
|
||||||
|
UnauthorizedException,
|
||||||
|
} from '@nestjs/common';
|
||||||
import { JwtService } from '@nestjs/jwt';
|
import { JwtService } from '@nestjs/jwt';
|
||||||
import * as argon2 from 'argon2';
|
import * as argon2 from 'argon2';
|
||||||
import { HelperHashService } from '../../helper/services';
|
import { HelperHashService } from '../../helper/services';
|
||||||
@ -10,13 +14,16 @@ import { OAuth2Client } from 'google-auth-library';
|
|||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AuthService {
|
export class AuthService {
|
||||||
|
private client: OAuth2Client;
|
||||||
constructor(
|
constructor(
|
||||||
private jwtService: JwtService,
|
private jwtService: JwtService,
|
||||||
private readonly userRepository: UserRepository,
|
private readonly userRepository: UserRepository,
|
||||||
private readonly sessionRepository: UserSessionRepository,
|
private readonly sessionRepository: UserSessionRepository,
|
||||||
private readonly helperHashService: HelperHashService,
|
private readonly helperHashService: HelperHashService,
|
||||||
private readonly configService: ConfigService,
|
private readonly configService: ConfigService,
|
||||||
) {}
|
) {
|
||||||
|
this.client = new OAuth2Client(this.configService.get('GOOGLE_CLIENT_ID'));
|
||||||
|
}
|
||||||
|
|
||||||
async validateUser(
|
async validateUser(
|
||||||
email: string,
|
email: string,
|
||||||
@ -81,8 +88,17 @@ export class AuthService {
|
|||||||
type: user.type,
|
type: user.type,
|
||||||
sessionId: user.sessionId,
|
sessionId: user.sessionId,
|
||||||
roles: user?.roles,
|
roles: user?.roles,
|
||||||
|
googleCode: user.googleCode,
|
||||||
};
|
};
|
||||||
|
if (payload.googleCode) {
|
||||||
|
const profile = await this.getProfile(payload.googleCode);
|
||||||
|
user = await this.userRepository.findOne({
|
||||||
|
where: { email: profile.email },
|
||||||
|
});
|
||||||
|
if (!user) {
|
||||||
|
return { profile };
|
||||||
|
}
|
||||||
|
}
|
||||||
const tokens = await this.getTokens(payload);
|
const tokens = await this.getTokens(payload);
|
||||||
await this.updateRefreshToken(user.uuid, tokens.refreshToken);
|
await this.updateRefreshToken(user.uuid, tokens.refreshToken);
|
||||||
return tokens;
|
return tokens;
|
||||||
@ -101,4 +117,19 @@ export class AuthService {
|
|||||||
hashData(data: string) {
|
hashData(data: string) {
|
||||||
return argon2.hash(data);
|
return argon2.hash(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getProfile(googleCode: string) {
|
||||||
|
try {
|
||||||
|
const ticket = await this.client.verifyIdToken({
|
||||||
|
idToken: googleCode,
|
||||||
|
audience: this.configService.get('GOOGLE_CLIENT_ID'),
|
||||||
|
});
|
||||||
|
const payload = ticket.getPayload();
|
||||||
|
return {
|
||||||
|
...payload,
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
throw new UnauthorizedException('Google login failed');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
164
package-lock.json
generated
164
package-lock.json
generated
@ -20,13 +20,14 @@
|
|||||||
"@nestjs/websockets": "^10.3.8",
|
"@nestjs/websockets": "^10.3.8",
|
||||||
"@tuya/tuya-connector-nodejs": "^2.1.2",
|
"@tuya/tuya-connector-nodejs": "^2.1.2",
|
||||||
"argon2": "^0.40.1",
|
"argon2": "^0.40.1",
|
||||||
"axios": "^1.6.7",
|
"axios": "^1.7.7",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"class-transformer": "^0.5.1",
|
"class-transformer": "^0.5.1",
|
||||||
"class-validator": "^0.14.1",
|
"class-validator": "^0.14.1",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
"express-rate-limit": "^7.1.5",
|
"express-rate-limit": "^7.1.5",
|
||||||
"firebase": "^10.12.5",
|
"firebase": "^10.12.5",
|
||||||
|
"google-auth-library": "^9.14.1",
|
||||||
"helmet": "^7.1.0",
|
"helmet": "^7.1.0",
|
||||||
"ioredis": "^5.3.2",
|
"ioredis": "^5.3.2",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
@ -3564,6 +3565,18 @@
|
|||||||
"node": ">=0.4.0"
|
"node": ">=0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/agent-base": {
|
||||||
|
"version": "7.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
|
||||||
|
"integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "^4.3.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ajv": {
|
"node_modules/ajv": {
|
||||||
"version": "8.12.0",
|
"version": "8.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
|
||||||
@ -3784,11 +3797,12 @@
|
|||||||
"integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g=="
|
"integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g=="
|
||||||
},
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "1.6.7",
|
"version": "1.7.7",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
|
||||||
"integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
|
"integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.15.4",
|
"follow-redirects": "^1.15.6",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
"proxy-from-env": "^1.1.0"
|
"proxy-from-env": "^1.1.0"
|
||||||
}
|
}
|
||||||
@ -3962,6 +3976,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
|
||||||
"integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
|
"integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/bignumber.js": {
|
||||||
|
"version": "9.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
|
||||||
|
"integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/binary-extensions": {
|
"node_modules/binary-extensions": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||||
@ -5887,15 +5910,16 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
"node_modules/follow-redirects": {
|
||||||
"version": "1.15.5",
|
"version": "1.15.9",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
|
||||||
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
|
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4.0"
|
"node": ">=4.0"
|
||||||
},
|
},
|
||||||
@ -6056,6 +6080,35 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gaxios": {
|
||||||
|
"version": "6.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
|
||||||
|
"integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^7.0.1",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9",
|
||||||
|
"uuid": "^9.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gcp-metadata": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"json-bigint": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/gensync": {
|
"node_modules/gensync": {
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.2",
|
||||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
@ -6194,6 +6247,44 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/google-auth-library": {
|
||||||
|
"version": "9.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.14.1.tgz",
|
||||||
|
"integrity": "sha512-Rj+PMjoNFGFTmtItH7gHfbHpGVSb3vmnGK3nwNBqxQF9NoBpttSZI/rc0WiM63ma2uGDQtYEkMHkK9U6937NiA==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "^1.3.0",
|
||||||
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
|
"gaxios": "^6.1.1",
|
||||||
|
"gcp-metadata": "^6.1.0",
|
||||||
|
"gtoken": "^7.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/google-auth-library/node_modules/jwa": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"buffer-equal-constant-time": "1.0.1",
|
||||||
|
"ecdsa-sig-formatter": "1.0.11",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/google-auth-library/node_modules/jws": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jwa": "^2.0.0",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/gopd": {
|
"node_modules/gopd": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||||
@ -6217,6 +6308,40 @@
|
|||||||
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
|
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/gtoken": {
|
||||||
|
"version": "7.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz",
|
||||||
|
"integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gtoken/node_modules/jwa": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"buffer-equal-constant-time": "1.0.1",
|
||||||
|
"ecdsa-sig-formatter": "1.0.11",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gtoken/node_modules/jws": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"jwa": "^2.0.0",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/har-schema": {
|
"node_modules/har-schema": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||||
@ -6384,6 +6509,19 @@
|
|||||||
"npm": ">=1.3.7"
|
"npm": ">=1.3.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/https-proxy-agent": {
|
||||||
|
"version": "7.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
|
||||||
|
"integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"agent-base": "^7.0.2",
|
||||||
|
"debug": "4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/human-signals": {
|
"node_modules/human-signals": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
|
||||||
@ -6689,7 +6827,6 @@
|
|||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
|
||||||
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
},
|
},
|
||||||
@ -7533,6 +7670,15 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/json-bigint": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"bignumber.js": "^9.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/json-buffer": {
|
"node_modules/json-buffer": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
||||||
|
@ -31,13 +31,14 @@
|
|||||||
"@nestjs/websockets": "^10.3.8",
|
"@nestjs/websockets": "^10.3.8",
|
||||||
"@tuya/tuya-connector-nodejs": "^2.1.2",
|
"@tuya/tuya-connector-nodejs": "^2.1.2",
|
||||||
"argon2": "^0.40.1",
|
"argon2": "^0.40.1",
|
||||||
"axios": "^1.6.7",
|
"axios": "^1.7.7",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"class-transformer": "^0.5.1",
|
"class-transformer": "^0.5.1",
|
||||||
"class-validator": "^0.14.1",
|
"class-validator": "^0.14.1",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
"express-rate-limit": "^7.1.5",
|
"express-rate-limit": "^7.1.5",
|
||||||
"firebase": "^10.12.5",
|
"firebase": "^10.12.5",
|
||||||
|
"google-auth-library": "^9.14.1",
|
||||||
"helmet": "^7.1.0",
|
"helmet": "^7.1.0",
|
||||||
"ioredis": "^5.3.2",
|
"ioredis": "^5.3.2",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
|
@ -41,5 +41,5 @@ export class UserSignUpDto {
|
|||||||
|
|
||||||
@IsString()
|
@IsString()
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
public regionUuid: string;
|
public regionUuid?: string;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,23 @@
|
|||||||
import { ApiProperty } from '@nestjs/swagger';
|
import { ApiProperty } from '@nestjs/swagger';
|
||||||
import { IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator';
|
import { IsEmail, IsOptional, IsString } from 'class-validator';
|
||||||
|
|
||||||
export class UserLoginDto {
|
export class UserLoginDto {
|
||||||
@ApiProperty()
|
@ApiProperty()
|
||||||
@IsEmail()
|
@IsEmail()
|
||||||
@IsNotEmpty()
|
@IsOptional()
|
||||||
email: string;
|
email?: string;
|
||||||
|
|
||||||
@ApiProperty()
|
@ApiProperty()
|
||||||
@IsString()
|
@IsString()
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
password: string;
|
password?: string;
|
||||||
|
|
||||||
@ApiProperty()
|
@ApiProperty()
|
||||||
@IsString()
|
@IsString()
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
regionUuid?: string;
|
regionUuid?: string;
|
||||||
|
|
||||||
|
@IsOptional()
|
||||||
|
@IsString()
|
||||||
|
googleCode?: string;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import * as argon2 from 'argon2';
|
|||||||
import { differenceInSeconds } from '@app/common/helper/differenceInSeconds';
|
import { differenceInSeconds } from '@app/common/helper/differenceInSeconds';
|
||||||
import { LessThan, MoreThan } from 'typeorm';
|
import { LessThan, MoreThan } from 'typeorm';
|
||||||
import { ConfigService } from '@nestjs/config';
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
import { UUID } from 'typeorm/driver/mongodb/bson.typings';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class UserAuthService {
|
export class UserAuthService {
|
||||||
@ -89,13 +90,38 @@ export class UserAuthService {
|
|||||||
|
|
||||||
async userLogin(data: UserLoginDto) {
|
async userLogin(data: UserLoginDto) {
|
||||||
try {
|
try {
|
||||||
const user = await this.authService.validateUser(
|
let user;
|
||||||
data.email,
|
if (data.googleCode) {
|
||||||
data.password,
|
const googleUserData = await this.authService.login({
|
||||||
data.regionUuid,
|
googleCode: data.googleCode,
|
||||||
);
|
});
|
||||||
if (!user) {
|
const userExists = await this.userRepository.exists({
|
||||||
throw new UnauthorizedException('Invalid login credentials.');
|
where: {
|
||||||
|
email: googleUserData['email'],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
user = await this.userRepository.findOne({
|
||||||
|
where: {
|
||||||
|
email: googleUserData['email'],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (!userExists) {
|
||||||
|
await this.signUp({
|
||||||
|
email: googleUserData['email'],
|
||||||
|
firstName: googleUserData['given_name'],
|
||||||
|
lastName: googleUserData['family_name'],
|
||||||
|
password: googleUserData['email'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
data.email = googleUserData['email'];
|
||||||
|
data.password = googleUserData['password'];
|
||||||
|
}
|
||||||
|
if (!data.googleCode) {
|
||||||
|
user = await this.authService.validateUser(
|
||||||
|
data.email,
|
||||||
|
data.password,
|
||||||
|
data.regionUuid,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
const session = await Promise.all([
|
const session = await Promise.all([
|
||||||
await this.sessionRepository.update(
|
await this.sessionRepository.update(
|
||||||
@ -110,7 +136,7 @@ export class UserAuthService {
|
|||||||
isLoggedOut: false,
|
isLoggedOut: false,
|
||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
return await this.authService.login({
|
const res = await this.authService.login({
|
||||||
email: user.email,
|
email: user.email,
|
||||||
userId: user.uuid,
|
userId: user.uuid,
|
||||||
uuid: user.uuid,
|
uuid: user.uuid,
|
||||||
@ -119,6 +145,7 @@ export class UserAuthService {
|
|||||||
}),
|
}),
|
||||||
sessionId: session[1].uuid,
|
sessionId: session[1].uuid,
|
||||||
});
|
});
|
||||||
|
return res;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
throw new BadRequestException('Invalid credentials');
|
throw new BadRequestException('Invalid credentials');
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -31,52 +30,30 @@ export class AutomationController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addAutomation(@Body() addAutomationDto: AddAutomationDto) {
|
async addAutomation(@Body() addAutomationDto: AddAutomationDto) {
|
||||||
try {
|
const automation =
|
||||||
const automation =
|
await this.automationService.addAutomation(addAutomationDto);
|
||||||
await this.automationService.addAutomation(addAutomationDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Automation added successfully',
|
||||||
message: 'Automation added successfully',
|
data: automation,
|
||||||
data: automation,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get(':unitUuid')
|
@Get(':unitUuid')
|
||||||
async getAutomationByUnit(@Param('unitUuid') unitUuid: string) {
|
async getAutomationByUnit(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
const automation =
|
||||||
const automation =
|
await this.automationService.getAutomationByUnit(unitUuid);
|
||||||
await this.automationService.getAutomationByUnit(unitUuid);
|
return automation;
|
||||||
return automation;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('details/:automationId')
|
@Get('details/:automationId')
|
||||||
async getAutomationDetails(@Param('automationId') automationId: string) {
|
async getAutomationDetails(@Param('automationId') automationId: string) {
|
||||||
try {
|
const automation =
|
||||||
const automation =
|
await this.automationService.getAutomationDetails(automationId);
|
||||||
await this.automationService.getAutomationDetails(automationId);
|
return automation;
|
||||||
return automation;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
``;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -85,18 +62,11 @@ export class AutomationController {
|
|||||||
@Param('unitUuid') unitUuid: string,
|
@Param('unitUuid') unitUuid: string,
|
||||||
@Param('automationId') automationId: string,
|
@Param('automationId') automationId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.automationService.deleteAutomation(unitUuid, automationId);
|
||||||
await this.automationService.deleteAutomation(unitUuid, automationId);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'Automation Deleted Successfully',
|
||||||
message: 'Automation Deleted Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -105,23 +75,16 @@ export class AutomationController {
|
|||||||
@Body() updateAutomationDto: UpdateAutomationDto,
|
@Body() updateAutomationDto: UpdateAutomationDto,
|
||||||
@Param('automationId') automationId: string,
|
@Param('automationId') automationId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const automation = await this.automationService.updateAutomation(
|
||||||
const automation = await this.automationService.updateAutomation(
|
updateAutomationDto,
|
||||||
updateAutomationDto,
|
automationId,
|
||||||
automationId,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Automation updated successfully',
|
||||||
message: 'Automation updated successfully',
|
data: automation,
|
||||||
data: automation,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -130,21 +93,14 @@ export class AutomationController {
|
|||||||
@Body() updateAutomationStatusDto: UpdateAutomationStatusDto,
|
@Body() updateAutomationStatusDto: UpdateAutomationStatusDto,
|
||||||
@Param('automationId') automationId: string,
|
@Param('automationId') automationId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.automationService.updateAutomationStatus(
|
||||||
await this.automationService.updateAutomationStatus(
|
updateAutomationStatusDto,
|
||||||
updateAutomationStatusDto,
|
automationId,
|
||||||
automationId,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Automation status updated successfully',
|
||||||
message: 'Automation status updated successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -33,36 +32,21 @@ export class BuildingController {
|
|||||||
@UseGuards(JwtAuthGuard, CheckCommunityTypeGuard)
|
@UseGuards(JwtAuthGuard, CheckCommunityTypeGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addBuilding(@Body() addBuildingDto: AddBuildingDto) {
|
async addBuilding(@Body() addBuildingDto: AddBuildingDto) {
|
||||||
try {
|
const building = await this.buildingService.addBuilding(addBuildingDto);
|
||||||
const building = await this.buildingService.addBuilding(addBuildingDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Building added successfully',
|
||||||
message: 'Building added successfully',
|
data: building,
|
||||||
data: building,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, BuildingPermissionGuard)
|
@UseGuards(JwtAuthGuard, BuildingPermissionGuard)
|
||||||
@Get(':buildingUuid')
|
@Get(':buildingUuid')
|
||||||
async getBuildingByUuid(@Param('buildingUuid') buildingUuid: string) {
|
async getBuildingByUuid(@Param('buildingUuid') buildingUuid: string) {
|
||||||
try {
|
const building = await this.buildingService.getBuildingByUuid(buildingUuid);
|
||||||
const building =
|
return building;
|
||||||
await this.buildingService.getBuildingByUuid(buildingUuid);
|
|
||||||
return building;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -72,64 +56,36 @@ export class BuildingController {
|
|||||||
@Param('buildingUuid') buildingUuid: string,
|
@Param('buildingUuid') buildingUuid: string,
|
||||||
@Query() query: GetBuildingChildDto,
|
@Query() query: GetBuildingChildDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const building = await this.buildingService.getBuildingChildByUuid(
|
||||||
const building = await this.buildingService.getBuildingChildByUuid(
|
buildingUuid,
|
||||||
buildingUuid,
|
query,
|
||||||
query,
|
);
|
||||||
);
|
return building;
|
||||||
return building;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, BuildingPermissionGuard)
|
@UseGuards(JwtAuthGuard, BuildingPermissionGuard)
|
||||||
@Get('parent/:buildingUuid')
|
@Get('parent/:buildingUuid')
|
||||||
async getBuildingParentByUuid(@Param('buildingUuid') buildingUuid: string) {
|
async getBuildingParentByUuid(@Param('buildingUuid') buildingUuid: string) {
|
||||||
try {
|
const building =
|
||||||
const building =
|
await this.buildingService.getBuildingParentByUuid(buildingUuid);
|
||||||
await this.buildingService.getBuildingParentByUuid(buildingUuid);
|
return building;
|
||||||
return building;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard, CheckUserBuildingGuard)
|
@UseGuards(AdminRoleGuard, CheckUserBuildingGuard)
|
||||||
@Post('user')
|
@Post('user')
|
||||||
async addUserBuilding(@Body() addUserBuildingDto: AddUserBuildingDto) {
|
async addUserBuilding(@Body() addUserBuildingDto: AddUserBuildingDto) {
|
||||||
try {
|
await this.buildingService.addUserBuilding(addUserBuildingDto);
|
||||||
await this.buildingService.addUserBuilding(addUserBuildingDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user building added successfully',
|
||||||
message: 'user building added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getBuildingsByUserId(@Param('userUuid') userUuid: string) {
|
async getBuildingsByUserId(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.buildingService.getBuildingsByUserId(userUuid);
|
||||||
return await this.buildingService.getBuildingsByUserId(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -139,17 +95,10 @@ export class BuildingController {
|
|||||||
@Param('buildingUuid') buildingUuid: string,
|
@Param('buildingUuid') buildingUuid: string,
|
||||||
@Body() updateBuildingDto: UpdateBuildingNameDto,
|
@Body() updateBuildingDto: UpdateBuildingNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const building = await this.buildingService.renameBuildingByUuid(
|
||||||
const building = await this.buildingService.renameBuildingByUuid(
|
buildingUuid,
|
||||||
buildingUuid,
|
updateBuildingDto,
|
||||||
updateBuildingDto,
|
);
|
||||||
);
|
return building;
|
||||||
return building;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -35,51 +34,29 @@ export class CommunityController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addCommunity(@Body() addCommunityDto: AddCommunityDto) {
|
async addCommunity(@Body() addCommunityDto: AddCommunityDto) {
|
||||||
try {
|
const community = await this.communityService.addCommunity(addCommunityDto);
|
||||||
const community =
|
return {
|
||||||
await this.communityService.addCommunity(addCommunityDto);
|
statusCode: HttpStatus.CREATED,
|
||||||
return {
|
success: true,
|
||||||
statusCode: HttpStatus.CREATED,
|
message: 'Community added successfully',
|
||||||
success: true,
|
data: community,
|
||||||
message: 'Community added successfully',
|
};
|
||||||
data: community,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get(':communityUuid')
|
@Get(':communityUuid')
|
||||||
async getCommunityByUuid(@Param('communityUuid') communityUuid: string) {
|
async getCommunityByUuid(@Param('communityUuid') communityUuid: string) {
|
||||||
try {
|
const community =
|
||||||
const community =
|
await this.communityService.getCommunityByUuid(communityUuid);
|
||||||
await this.communityService.getCommunityByUuid(communityUuid);
|
return community;
|
||||||
return community;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get()
|
@Get()
|
||||||
async getCommunities() {
|
async getCommunities() {
|
||||||
try {
|
const communities = await this.communityService.getCommunities();
|
||||||
const communities = await this.communityService.getCommunities();
|
return communities;
|
||||||
return communities;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -88,50 +65,29 @@ export class CommunityController {
|
|||||||
@Param('communityUuid') communityUuid: string,
|
@Param('communityUuid') communityUuid: string,
|
||||||
@Query() query: GetCommunityChildDto,
|
@Query() query: GetCommunityChildDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const community = await this.communityService.getCommunityChildByUuid(
|
||||||
const community = await this.communityService.getCommunityChildByUuid(
|
communityUuid,
|
||||||
communityUuid,
|
query,
|
||||||
query,
|
);
|
||||||
);
|
return community;
|
||||||
return community;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getCommunitiesByUserId(@Param('userUuid') userUuid: string) {
|
async getCommunitiesByUserId(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.communityService.getCommunitiesByUserId(userUuid);
|
||||||
return await this.communityService.getCommunitiesByUserId(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard)
|
@UseGuards(AdminRoleGuard)
|
||||||
@Post('user')
|
@Post('user')
|
||||||
async addUserCommunity(@Body() addUserCommunityDto: AddUserCommunityDto) {
|
async addUserCommunity(@Body() addUserCommunityDto: AddUserCommunityDto) {
|
||||||
try {
|
await this.communityService.addUserCommunity(addUserCommunityDto);
|
||||||
await this.communityService.addUserCommunity(addUserCommunityDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user community added successfully',
|
||||||
message: 'user community added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -140,17 +96,10 @@ export class CommunityController {
|
|||||||
@Param('communityUuid') communityUuid: string,
|
@Param('communityUuid') communityUuid: string,
|
||||||
@Body() updateCommunityDto: UpdateCommunityNameDto,
|
@Body() updateCommunityDto: UpdateCommunityNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const community = await this.communityService.renameCommunityByUuid(
|
||||||
const community = await this.communityService.renameCommunityByUuid(
|
communityUuid,
|
||||||
communityUuid,
|
updateCommunityDto,
|
||||||
updateCommunityDto,
|
);
|
||||||
);
|
return community;
|
||||||
return community;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -31,22 +30,15 @@ export class DeviceMessagesSubscriptionController {
|
|||||||
async addDeviceMessagesSubscription(
|
async addDeviceMessagesSubscription(
|
||||||
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
|
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const addDetails =
|
||||||
const addDetails =
|
await this.deviceMessagesSubscriptionService.addDeviceMessagesSubscription(
|
||||||
await this.deviceMessagesSubscriptionService.addDeviceMessagesSubscription(
|
deviceMessagesAddDto,
|
||||||
deviceMessagesAddDto,
|
|
||||||
);
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
message: 'Device Messages Subscription Added Successfully',
|
|
||||||
data: addDetails,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
message: 'Device Messages Subscription Added Successfully',
|
||||||
|
data: addDetails,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -56,23 +48,16 @@ export class DeviceMessagesSubscriptionController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Param('userUuid') userUuid: string,
|
@Param('userUuid') userUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const deviceDetails =
|
||||||
const deviceDetails =
|
await this.deviceMessagesSubscriptionService.getDeviceMessagesSubscription(
|
||||||
await this.deviceMessagesSubscriptionService.getDeviceMessagesSubscription(
|
userUuid,
|
||||||
userUuid,
|
deviceUuid,
|
||||||
deviceUuid,
|
|
||||||
);
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.OK,
|
|
||||||
message: 'User Device Subscription fetched Successfully',
|
|
||||||
data: deviceDetails,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
return {
|
||||||
|
statusCode: HttpStatus.OK,
|
||||||
|
message: 'User Device Subscription fetched Successfully',
|
||||||
|
data: deviceDetails,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -80,19 +65,12 @@ export class DeviceMessagesSubscriptionController {
|
|||||||
async deleteDeviceMessagesSubscription(
|
async deleteDeviceMessagesSubscription(
|
||||||
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
|
@Body() deviceMessagesAddDto: DeviceMessagesAddDto,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.deviceMessagesSubscriptionService.deleteDeviceMessagesSubscription(
|
||||||
await this.deviceMessagesSubscriptionService.deleteDeviceMessagesSubscription(
|
deviceMessagesAddDto,
|
||||||
deviceMessagesAddDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User subscription deleted Successfully',
|
||||||
message: 'User subscription deleted Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import {
|
|||||||
Post,
|
Post,
|
||||||
Query,
|
Query,
|
||||||
Param,
|
Param,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
Req,
|
Req,
|
||||||
@ -42,34 +41,20 @@ export class DeviceController {
|
|||||||
@UseGuards(SuperAdminRoleGuard, CheckDeviceGuard)
|
@UseGuards(SuperAdminRoleGuard, CheckDeviceGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addDeviceUser(@Body() addDeviceDto: AddDeviceDto) {
|
async addDeviceUser(@Body() addDeviceDto: AddDeviceDto) {
|
||||||
try {
|
const device = await this.deviceService.addDeviceUser(addDeviceDto);
|
||||||
const device = await this.deviceService.addDeviceUser(addDeviceDto);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: HttpStatus.CREATED,
|
statusCode: HttpStatus.CREATED,
|
||||||
success: true,
|
success: true,
|
||||||
message: 'device added successfully',
|
message: 'device added successfully',
|
||||||
data: device,
|
data: device,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getDevicesByUser(@Param('userUuid') userUuid: string) {
|
async getDevicesByUser(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.deviceService.getDevicesByUser(userUuid);
|
||||||
return await this.deviceService.getDevicesByUser(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
||||||
@ -78,31 +63,17 @@ export class DeviceController {
|
|||||||
@Query() getDeviceByRoomUuidDto: GetDeviceByRoomUuidDto,
|
@Query() getDeviceByRoomUuidDto: GetDeviceByRoomUuidDto,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
return await this.deviceService.getDevicesByRoomId(
|
||||||
return await this.deviceService.getDevicesByRoomId(
|
getDeviceByRoomUuidDto,
|
||||||
getDeviceByRoomUuidDto,
|
userUuid,
|
||||||
userUuid,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('unit/:unitUuid')
|
@Get('unit/:unitUuid')
|
||||||
async getDevicesByUnitId(@Param('unitUuid') unitUuid: string) {
|
async getDevicesByUnitId(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
return await this.deviceService.getDevicesByUnitId(unitUuid);
|
||||||
return await this.deviceService.getDevicesByUnitId(unitUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
@UseGuards(JwtAuthGuard, CheckRoomGuard)
|
||||||
@ -110,23 +81,16 @@ export class DeviceController {
|
|||||||
async updateDeviceInRoom(
|
async updateDeviceInRoom(
|
||||||
@Body() updateDeviceInRoomDto: UpdateDeviceInRoomDto,
|
@Body() updateDeviceInRoomDto: UpdateDeviceInRoomDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const device = await this.deviceService.updateDeviceInRoom(
|
||||||
const device = await this.deviceService.updateDeviceInRoom(
|
updateDeviceInRoomDto,
|
||||||
updateDeviceInRoomDto,
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: HttpStatus.CREATED,
|
statusCode: HttpStatus.CREATED,
|
||||||
success: true,
|
success: true,
|
||||||
message: 'device updated in room successfully',
|
message: 'device updated in room successfully',
|
||||||
data: device,
|
data: device,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -136,18 +100,11 @@ export class DeviceController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
return await this.deviceService.getDeviceDetailsByDeviceId(
|
||||||
return await this.deviceService.getDeviceDetailsByDeviceId(
|
deviceUuid,
|
||||||
deviceUuid,
|
userUuid,
|
||||||
userUuid,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckUserHavePermission)
|
@UseGuards(JwtAuthGuard, CheckUserHavePermission)
|
||||||
@ -155,29 +112,13 @@ export class DeviceController {
|
|||||||
async getDeviceInstructionByDeviceId(
|
async getDeviceInstructionByDeviceId(
|
||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.getDeviceInstructionByDeviceId(deviceUuid);
|
||||||
return await this.deviceService.getDeviceInstructionByDeviceId(
|
|
||||||
deviceUuid,
|
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckUserHavePermission)
|
@UseGuards(JwtAuthGuard, CheckUserHavePermission)
|
||||||
@Get(':deviceUuid/functions/status')
|
@Get(':deviceUuid/functions/status')
|
||||||
async getDevicesInstructionStatus(@Param('deviceUuid') deviceUuid: string) {
|
async getDevicesInstructionStatus(@Param('deviceUuid') deviceUuid: string) {
|
||||||
try {
|
return await this.deviceService.getDevicesInstructionStatus(deviceUuid);
|
||||||
return await this.deviceService.getDevicesInstructionStatus(deviceUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -187,17 +128,7 @@ export class DeviceController {
|
|||||||
@Body() controlDeviceDto: ControlDeviceDto,
|
@Body() controlDeviceDto: ControlDeviceDto,
|
||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.controlDevice(controlDeviceDto, deviceUuid);
|
||||||
return await this.deviceService.controlDevice(
|
|
||||||
controlDeviceDto,
|
|
||||||
deviceUuid,
|
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -206,43 +137,22 @@ export class DeviceController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Param('firmwareVersion') firmwareVersion: number,
|
@Param('firmwareVersion') firmwareVersion: number,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.updateDeviceFirmware(
|
||||||
return await this.deviceService.updateDeviceFirmware(
|
deviceUuid,
|
||||||
deviceUuid,
|
firmwareVersion,
|
||||||
firmwareVersion,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('gateway/:gatewayUuid/devices')
|
@Get('gateway/:gatewayUuid/devices')
|
||||||
async getDevicesInGateway(@Param('gatewayUuid') gatewayUuid: string) {
|
async getDevicesInGateway(@Param('gatewayUuid') gatewayUuid: string) {
|
||||||
try {
|
return await this.deviceService.getDevicesInGateway(gatewayUuid);
|
||||||
return await this.deviceService.getDevicesInGateway(gatewayUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get()
|
@Get()
|
||||||
async getAllDevices() {
|
async getAllDevices() {
|
||||||
try {
|
return await this.deviceService.getAllDevices();
|
||||||
return await this.deviceService.getAllDevices();
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -251,14 +161,7 @@ export class DeviceController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Query() query: GetDeviceLogsDto,
|
@Query() query: GetDeviceLogsDto,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.getDeviceLogs(deviceUuid, query);
|
||||||
return await this.deviceService.getDeviceLogs(deviceUuid, query);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -266,16 +169,7 @@ export class DeviceController {
|
|||||||
async batchControlDevices(
|
async batchControlDevices(
|
||||||
@Body() batchControlDevicesDto: BatchControlDevicesDto,
|
@Body() batchControlDevicesDto: BatchControlDevicesDto,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.batchControlDevices(batchControlDevicesDto);
|
||||||
return await this.deviceService.batchControlDevices(
|
|
||||||
batchControlDevicesDto,
|
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -283,14 +177,7 @@ export class DeviceController {
|
|||||||
async batchStatusDevices(
|
async batchStatusDevices(
|
||||||
@Query() batchStatusDevicesDto: BatchStatusDevicesDto,
|
@Query() batchStatusDevicesDto: BatchStatusDevicesDto,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.batchStatusDevices(batchStatusDevicesDto);
|
||||||
return await this.deviceService.batchStatusDevices(batchStatusDevicesDto);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -298,15 +185,8 @@ export class DeviceController {
|
|||||||
async batchFactoryResetDevices(
|
async batchFactoryResetDevices(
|
||||||
@Body() batchFactoryResetDevicesDto: BatchFactoryResetDevicesDto,
|
@Body() batchFactoryResetDevicesDto: BatchFactoryResetDevicesDto,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.deviceService.batchFactoryResetDevices(
|
||||||
return await this.deviceService.batchFactoryResetDevices(
|
batchFactoryResetDevicesDto,
|
||||||
batchFactoryResetDevicesDto,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Post,
|
Post,
|
||||||
Param,
|
Param,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Get,
|
Get,
|
||||||
Delete,
|
Delete,
|
||||||
@ -31,27 +30,20 @@ export class DoorLockController {
|
|||||||
@Body() addDoorLockDto: AddDoorLockOnlineDto,
|
@Body() addDoorLockDto: AddDoorLockOnlineDto,
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.doorLockService.addOnlineTemporaryPassword(
|
||||||
await this.doorLockService.addOnlineTemporaryPassword(
|
addDoorLockDto,
|
||||||
addDoorLockDto,
|
doorLockUuid,
|
||||||
doorLockUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
success: true,
|
|
||||||
message: 'online temporary password added successfully',
|
|
||||||
data: {
|
|
||||||
id: temporaryPassword.id,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
success: true,
|
||||||
|
message: 'online temporary password added successfully',
|
||||||
|
data: {
|
||||||
|
id: temporaryPassword.id,
|
||||||
|
},
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -59,24 +51,17 @@ export class DoorLockController {
|
|||||||
async addOfflineOneTimeTemporaryPassword(
|
async addOfflineOneTimeTemporaryPassword(
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.doorLockService.addOfflineOneTimeTemporaryPassword(
|
||||||
await this.doorLockService.addOfflineOneTimeTemporaryPassword(
|
doorLockUuid,
|
||||||
doorLockUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
success: true,
|
|
||||||
message: 'offline temporary password added successfully',
|
|
||||||
data: temporaryPassword,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
success: true,
|
||||||
|
message: 'offline temporary password added successfully',
|
||||||
|
data: temporaryPassword,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -86,25 +71,18 @@ export class DoorLockController {
|
|||||||
addDoorLockOfflineTempMultipleTimeDto: AddDoorLockOfflineTempMultipleTimeDto,
|
addDoorLockOfflineTempMultipleTimeDto: AddDoorLockOfflineTempMultipleTimeDto,
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.doorLockService.addOfflineMultipleTimeTemporaryPassword(
|
||||||
await this.doorLockService.addOfflineMultipleTimeTemporaryPassword(
|
addDoorLockOfflineTempMultipleTimeDto,
|
||||||
addDoorLockOfflineTempMultipleTimeDto,
|
doorLockUuid,
|
||||||
doorLockUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
success: true,
|
|
||||||
message: 'offline temporary password added successfully',
|
|
||||||
data: temporaryPassword,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
success: true,
|
||||||
|
message: 'offline temporary password added successfully',
|
||||||
|
data: temporaryPassword,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -112,16 +90,9 @@ export class DoorLockController {
|
|||||||
async getOnlineTemporaryPasswords(
|
async getOnlineTemporaryPasswords(
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.doorLockService.getOnlineTemporaryPasswordsMultiple(
|
||||||
return await this.doorLockService.getOnlineTemporaryPasswordsMultiple(
|
doorLockUuid,
|
||||||
doorLockUuid,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -130,21 +101,11 @@ export class DoorLockController {
|
|||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
@Param('passwordId') passwordId: string,
|
@Param('passwordId') passwordId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.doorLockService.deleteDoorLockPassword(doorLockUuid, passwordId);
|
||||||
await this.doorLockService.deleteDoorLockPassword(
|
return {
|
||||||
doorLockUuid,
|
statusCode: HttpStatus.OK,
|
||||||
passwordId,
|
message: 'Temporary Password deleted Successfully',
|
||||||
);
|
};
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.OK,
|
|
||||||
message: 'Temporary Password deleted Successfully',
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -152,16 +113,9 @@ export class DoorLockController {
|
|||||||
async getOfflineOneTimeTemporaryPasswords(
|
async getOfflineOneTimeTemporaryPasswords(
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.doorLockService.getOfflineOneTimeTemporaryPasswords(
|
||||||
return await this.doorLockService.getOfflineOneTimeTemporaryPasswords(
|
doorLockUuid,
|
||||||
doorLockUuid,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -169,16 +123,9 @@ export class DoorLockController {
|
|||||||
async getOfflineMultipleTimeTemporaryPasswords(
|
async getOfflineMultipleTimeTemporaryPasswords(
|
||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.doorLockService.getOfflineMultipleTimeTemporaryPasswords(
|
||||||
return await this.doorLockService.getOfflineMultipleTimeTemporaryPasswords(
|
doorLockUuid,
|
||||||
doorLockUuid,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -190,44 +137,30 @@ export class DoorLockController {
|
|||||||
@Param('doorLockUuid') doorLockUuid: string,
|
@Param('doorLockUuid') doorLockUuid: string,
|
||||||
@Param('passwordId') passwordId: string,
|
@Param('passwordId') passwordId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.doorLockService.updateOfflineTemporaryPassword(
|
||||||
await this.doorLockService.updateOfflineTemporaryPassword(
|
updateDoorLockOfflineTempDto,
|
||||||
updateDoorLockOfflineTempDto,
|
doorLockUuid,
|
||||||
doorLockUuid,
|
passwordId,
|
||||||
passwordId,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
success: true,
|
|
||||||
message: 'offline temporary password updated successfully',
|
|
||||||
data: temporaryPassword,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
success: true,
|
||||||
|
message: 'offline temporary password updated successfully',
|
||||||
|
data: temporaryPassword,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('open/:doorLockUuid')
|
@Post('open/:doorLockUuid')
|
||||||
async openDoorLock(@Param('doorLockUuid') doorLockUuid: string) {
|
async openDoorLock(@Param('doorLockUuid') doorLockUuid: string) {
|
||||||
try {
|
await this.doorLockService.openDoorLock(doorLockUuid);
|
||||||
await this.doorLockService.openDoorLock(doorLockUuid);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: HttpStatus.CREATED,
|
statusCode: HttpStatus.CREATED,
|
||||||
success: true,
|
success: true,
|
||||||
message: 'door lock opened successfully',
|
message: 'door lock opened successfully',
|
||||||
};
|
};
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -33,35 +32,21 @@ export class FloorController {
|
|||||||
@UseGuards(JwtAuthGuard, CheckBuildingTypeGuard)
|
@UseGuards(JwtAuthGuard, CheckBuildingTypeGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addFloor(@Body() addFloorDto: AddFloorDto) {
|
async addFloor(@Body() addFloorDto: AddFloorDto) {
|
||||||
try {
|
const floor = await this.floorService.addFloor(addFloorDto);
|
||||||
const floor = await this.floorService.addFloor(addFloorDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Floor added successfully',
|
||||||
message: 'Floor added successfully',
|
data: floor,
|
||||||
data: floor,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, FloorPermissionGuard)
|
@UseGuards(JwtAuthGuard, FloorPermissionGuard)
|
||||||
@Get(':floorUuid')
|
@Get(':floorUuid')
|
||||||
async getFloorByUuid(@Param('floorUuid') floorUuid: string) {
|
async getFloorByUuid(@Param('floorUuid') floorUuid: string) {
|
||||||
try {
|
const floor = await this.floorService.getFloorByUuid(floorUuid);
|
||||||
const floor = await this.floorService.getFloorByUuid(floorUuid);
|
return floor;
|
||||||
return floor;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -71,65 +56,34 @@ export class FloorController {
|
|||||||
@Param('floorUuid') floorUuid: string,
|
@Param('floorUuid') floorUuid: string,
|
||||||
@Query() query: GetFloorChildDto,
|
@Query() query: GetFloorChildDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const floor = await this.floorService.getFloorChildByUuid(floorUuid, query);
|
||||||
const floor = await this.floorService.getFloorChildByUuid(
|
return floor;
|
||||||
floorUuid,
|
|
||||||
query,
|
|
||||||
);
|
|
||||||
return floor;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, FloorPermissionGuard)
|
@UseGuards(JwtAuthGuard, FloorPermissionGuard)
|
||||||
@Get('parent/:floorUuid')
|
@Get('parent/:floorUuid')
|
||||||
async getFloorParentByUuid(@Param('floorUuid') floorUuid: string) {
|
async getFloorParentByUuid(@Param('floorUuid') floorUuid: string) {
|
||||||
try {
|
const floor = await this.floorService.getFloorParentByUuid(floorUuid);
|
||||||
const floor = await this.floorService.getFloorParentByUuid(floorUuid);
|
return floor;
|
||||||
return floor;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard, CheckUserFloorGuard)
|
@UseGuards(AdminRoleGuard, CheckUserFloorGuard)
|
||||||
@Post('user')
|
@Post('user')
|
||||||
async addUserFloor(@Body() addUserFloorDto: AddUserFloorDto) {
|
async addUserFloor(@Body() addUserFloorDto: AddUserFloorDto) {
|
||||||
try {
|
await this.floorService.addUserFloor(addUserFloorDto);
|
||||||
await this.floorService.addUserFloor(addUserFloorDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user floor added successfully',
|
||||||
message: 'user floor added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getFloorsByUserId(@Param('userUuid') userUuid: string) {
|
async getFloorsByUserId(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.floorService.getFloorsByUserId(userUuid);
|
||||||
return await this.floorService.getFloorsByUserId(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -139,17 +93,10 @@ export class FloorController {
|
|||||||
@Param('floorUuid') floorUuid: string,
|
@Param('floorUuid') floorUuid: string,
|
||||||
@Body() updateFloorNameDto: UpdateFloorNameDto,
|
@Body() updateFloorNameDto: UpdateFloorNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const floor = await this.floorService.renameFloorByUuid(
|
||||||
const floor = await this.floorService.renameFloorByUuid(
|
floorUuid,
|
||||||
floorUuid,
|
updateFloorNameDto,
|
||||||
updateFloorNameDto,
|
);
|
||||||
);
|
return floor;
|
||||||
return floor;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
import { GroupService } from '../services/group.service';
|
import { GroupService } from '../services/group.service';
|
||||||
import {
|
import { Controller, Get, UseGuards, Param, Req } from '@nestjs/common';
|
||||||
Controller,
|
|
||||||
Get,
|
|
||||||
UseGuards,
|
|
||||||
Param,
|
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
|
||||||
Req,
|
|
||||||
} from '@nestjs/common';
|
|
||||||
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
||||||
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
import { JwtAuthGuard } from '@app/common/guards/jwt.auth.guard';
|
||||||
import { UnitPermissionGuard } from 'src/guards/unit.permission.guard';
|
import { UnitPermissionGuard } from 'src/guards/unit.permission.guard';
|
||||||
@ -24,14 +16,7 @@ export class GroupController {
|
|||||||
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
||||||
@Get(':unitUuid')
|
@Get(':unitUuid')
|
||||||
async getGroupsBySpaceUuid(@Param('unitUuid') unitUuid: string) {
|
async getGroupsBySpaceUuid(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
return await this.groupService.getGroupsByUnitUuid(unitUuid);
|
||||||
return await this.groupService.getGroupsByUnitUuid(unitUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
||||||
@ -41,19 +26,12 @@ export class GroupController {
|
|||||||
@Param('groupName') groupName: string,
|
@Param('groupName') groupName: string,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
|
||||||
|
|
||||||
return await this.groupService.getUnitDevicesByGroupName(
|
return await this.groupService.getUnitDevicesByGroupName(
|
||||||
unitUuid,
|
unitUuid,
|
||||||
groupName,
|
groupName,
|
||||||
userUuid,
|
userUuid,
|
||||||
);
|
);
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Controller, Get, HttpException, HttpStatus } from '@nestjs/common';
|
import { Controller, Get } from '@nestjs/common';
|
||||||
import { RegionService } from '../services/region.service';
|
import { RegionService } from '../services/region.service';
|
||||||
import { ApiTags, ApiOperation } from '@nestjs/swagger';
|
import { ApiTags, ApiOperation } from '@nestjs/swagger';
|
||||||
import { ControllerRoute } from '@app/common/constants/controller-route';
|
import { ControllerRoute } from '@app/common/constants/controller-route';
|
||||||
@ -17,13 +17,6 @@ export class RegionController {
|
|||||||
description: ControllerRoute.REGION.ACTIONS.GET_REGIONS_DESCRIPTION,
|
description: ControllerRoute.REGION.ACTIONS.GET_REGIONS_DESCRIPTION,
|
||||||
})
|
})
|
||||||
async getAllRegions() {
|
async getAllRegions() {
|
||||||
try {
|
return await this.regionService.getAllRegions();
|
||||||
return await this.regionService.getAllRegions();
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Post,
|
Post,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
@ -23,32 +22,21 @@ export class RoleController {
|
|||||||
@UseGuards(SuperAdminRoleGuard)
|
@UseGuards(SuperAdminRoleGuard)
|
||||||
@Get('types')
|
@Get('types')
|
||||||
async fetchRoleTypes() {
|
async fetchRoleTypes() {
|
||||||
try {
|
const roleTypes = await this.roleService.fetchRoleTypes();
|
||||||
const roleTypes = await this.roleService.fetchRoleTypes();
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'Role Types fetched Successfully',
|
||||||
message: 'Role Types fetched Successfully',
|
data: roleTypes,
|
||||||
data: roleTypes,
|
};
|
||||||
};
|
|
||||||
} catch (err) {
|
|
||||||
throw new Error(err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(SuperAdminRoleGuard)
|
@UseGuards(SuperAdminRoleGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addUserRoleType(@Body() addUserRoleDto: AddUserRoleDto) {
|
async addUserRoleType(@Body() addUserRoleDto: AddUserRoleDto) {
|
||||||
try {
|
await this.roleService.addUserRoleType(addUserRoleDto);
|
||||||
await this.roleService.addUserRoleType(addUserRoleDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User Role Added Successfully',
|
||||||
message: 'User Role Added Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -31,81 +30,46 @@ export class RoomController {
|
|||||||
@UseGuards(JwtAuthGuard, CheckUnitTypeGuard)
|
@UseGuards(JwtAuthGuard, CheckUnitTypeGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addRoom(@Body() addRoomDto: AddRoomDto) {
|
async addRoom(@Body() addRoomDto: AddRoomDto) {
|
||||||
try {
|
const room = await this.roomService.addRoom(addRoomDto);
|
||||||
const room = await this.roomService.addRoom(addRoomDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Room added successfully',
|
||||||
message: 'Room added successfully',
|
data: room,
|
||||||
data: room,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, RoomPermissionGuard)
|
@UseGuards(JwtAuthGuard, RoomPermissionGuard)
|
||||||
@Get(':roomUuid')
|
@Get(':roomUuid')
|
||||||
async getRoomByUuid(@Param('roomUuid') roomUuid: string) {
|
async getRoomByUuid(@Param('roomUuid') roomUuid: string) {
|
||||||
try {
|
const room = await this.roomService.getRoomByUuid(roomUuid);
|
||||||
const room = await this.roomService.getRoomByUuid(roomUuid);
|
return room;
|
||||||
return room;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, RoomPermissionGuard)
|
@UseGuards(JwtAuthGuard, RoomPermissionGuard)
|
||||||
@Get('parent/:roomUuid')
|
@Get('parent/:roomUuid')
|
||||||
async getRoomParentByUuid(@Param('roomUuid') roomUuid: string) {
|
async getRoomParentByUuid(@Param('roomUuid') roomUuid: string) {
|
||||||
try {
|
const room = await this.roomService.getRoomParentByUuid(roomUuid);
|
||||||
const room = await this.roomService.getRoomParentByUuid(roomUuid);
|
return room;
|
||||||
return room;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard, CheckUserRoomGuard)
|
@UseGuards(AdminRoleGuard, CheckUserRoomGuard)
|
||||||
@Post('user')
|
@Post('user')
|
||||||
async addUserRoom(@Body() addUserRoomDto: AddUserRoomDto) {
|
async addUserRoom(@Body() addUserRoomDto: AddUserRoomDto) {
|
||||||
try {
|
await this.roomService.addUserRoom(addUserRoomDto);
|
||||||
await this.roomService.addUserRoom(addUserRoomDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user room added successfully',
|
||||||
message: 'user room added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getRoomsByUserId(@Param('userUuid') userUuid: string) {
|
async getRoomsByUserId(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.roomService.getRoomsByUserId(userUuid);
|
||||||
return await this.roomService.getRoomsByUserId(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -115,17 +79,10 @@ export class RoomController {
|
|||||||
@Param('roomUuid') roomUuid: string,
|
@Param('roomUuid') roomUuid: string,
|
||||||
@Body() updateRoomNameDto: UpdateRoomNameDto,
|
@Body() updateRoomNameDto: UpdateRoomNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const room = await this.roomService.renameRoomByUuid(
|
||||||
const room = await this.roomService.renameRoomByUuid(
|
roomUuid,
|
||||||
roomUuid,
|
updateRoomNameDto,
|
||||||
updateRoomNameDto,
|
);
|
||||||
);
|
return room;
|
||||||
return room;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -27,36 +26,22 @@ export class SceneController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('tap-to-run')
|
@Post('tap-to-run')
|
||||||
async addTapToRunScene(@Body() addSceneTapToRunDto: AddSceneTapToRunDto) {
|
async addTapToRunScene(@Body() addSceneTapToRunDto: AddSceneTapToRunDto) {
|
||||||
try {
|
const tapToRunScene =
|
||||||
const tapToRunScene =
|
await this.sceneService.addTapToRunScene(addSceneTapToRunDto);
|
||||||
await this.sceneService.addTapToRunScene(addSceneTapToRunDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Scene added successfully',
|
||||||
message: 'Scene added successfully',
|
data: tapToRunScene,
|
||||||
data: tapToRunScene,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('tap-to-run/:unitUuid')
|
@Get('tap-to-run/:unitUuid')
|
||||||
async getTapToRunSceneByUnit(@Param('unitUuid') unitUuid: string) {
|
async getTapToRunSceneByUnit(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
const tapToRunScenes =
|
||||||
const tapToRunScenes =
|
await this.sceneService.getTapToRunSceneByUnit(unitUuid);
|
||||||
await this.sceneService.getTapToRunSceneByUnit(unitUuid);
|
return tapToRunScenes;
|
||||||
return tapToRunScenes;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -65,53 +50,31 @@ export class SceneController {
|
|||||||
@Param('unitUuid') unitUuid: string,
|
@Param('unitUuid') unitUuid: string,
|
||||||
@Param('sceneId') sceneId: string,
|
@Param('sceneId') sceneId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.sceneService.deleteTapToRunScene(unitUuid, sceneId);
|
||||||
await this.sceneService.deleteTapToRunScene(unitUuid, sceneId);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'Scene Deleted Successfully',
|
||||||
message: 'Scene Deleted Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('tap-to-run/trigger/:sceneId')
|
@Post('tap-to-run/trigger/:sceneId')
|
||||||
async triggerTapToRunScene(@Param('sceneId') sceneId: string) {
|
async triggerTapToRunScene(@Param('sceneId') sceneId: string) {
|
||||||
try {
|
await this.sceneService.triggerTapToRunScene(sceneId);
|
||||||
await this.sceneService.triggerTapToRunScene(sceneId);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Scene trigger successfully',
|
||||||
message: 'Scene trigger successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('tap-to-run/details/:sceneId')
|
@Get('tap-to-run/details/:sceneId')
|
||||||
async getTapToRunSceneDetails(@Param('sceneId') sceneId: string) {
|
async getTapToRunSceneDetails(@Param('sceneId') sceneId: string) {
|
||||||
try {
|
const tapToRunScenes =
|
||||||
const tapToRunScenes =
|
await this.sceneService.getTapToRunSceneDetails(sceneId);
|
||||||
await this.sceneService.getTapToRunSceneDetails(sceneId);
|
return tapToRunScenes;
|
||||||
return tapToRunScenes;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
``;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -120,22 +83,15 @@ export class SceneController {
|
|||||||
@Body() updateSceneTapToRunDto: UpdateSceneTapToRunDto,
|
@Body() updateSceneTapToRunDto: UpdateSceneTapToRunDto,
|
||||||
@Param('sceneId') sceneId: string,
|
@Param('sceneId') sceneId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
const tapToRunScene = await this.sceneService.updateTapToRunScene(
|
||||||
const tapToRunScene = await this.sceneService.updateTapToRunScene(
|
updateSceneTapToRunDto,
|
||||||
updateSceneTapToRunDto,
|
sceneId,
|
||||||
sceneId,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Scene updated successfully',
|
||||||
message: 'Scene updated successfully',
|
data: tapToRunScene,
|
||||||
data: tapToRunScene,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import {
|
|||||||
Get,
|
Get,
|
||||||
Post,
|
Post,
|
||||||
Param,
|
Param,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
Put,
|
Put,
|
||||||
@ -36,24 +35,17 @@ export class ScheduleController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Body() addScheduleDto: AddScheduleDto,
|
@Body() addScheduleDto: AddScheduleDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const schedule = await this.scheduleService.addDeviceSchedule(
|
||||||
const schedule = await this.scheduleService.addDeviceSchedule(
|
deviceUuid,
|
||||||
deviceUuid,
|
addScheduleDto,
|
||||||
addScheduleDto,
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: HttpStatus.CREATED,
|
statusCode: HttpStatus.CREATED,
|
||||||
success: true,
|
success: true,
|
||||||
message: 'schedule added successfully',
|
message: 'schedule added successfully',
|
||||||
data: schedule,
|
data: schedule,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -62,17 +54,10 @@ export class ScheduleController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Query() query: GetScheduleDeviceDto,
|
@Query() query: GetScheduleDeviceDto,
|
||||||
) {
|
) {
|
||||||
try {
|
return await this.scheduleService.getDeviceScheduleByCategory(
|
||||||
return await this.scheduleService.getDeviceScheduleByCategory(
|
deviceUuid,
|
||||||
deviceUuid,
|
query.category,
|
||||||
query.category,
|
);
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -81,19 +66,12 @@ export class ScheduleController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Param('scheduleId') scheduleId: string,
|
@Param('scheduleId') scheduleId: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.scheduleService.deleteDeviceSchedule(deviceUuid, scheduleId);
|
||||||
await this.scheduleService.deleteDeviceSchedule(deviceUuid, scheduleId);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'schedule deleted successfully',
|
||||||
message: 'schedule deleted successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -102,22 +80,15 @@ export class ScheduleController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Body() enableScheduleDto: EnableScheduleDto,
|
@Body() enableScheduleDto: EnableScheduleDto,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.scheduleService.enableDeviceSchedule(
|
||||||
await this.scheduleService.enableDeviceSchedule(
|
deviceUuid,
|
||||||
deviceUuid,
|
enableScheduleDto,
|
||||||
enableScheduleDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'schedule updated successfully',
|
||||||
message: 'schedule updated successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -126,23 +97,16 @@ export class ScheduleController {
|
|||||||
@Param('deviceUuid') deviceUuid: string,
|
@Param('deviceUuid') deviceUuid: string,
|
||||||
@Body() updateScheduleDto: UpdateScheduleDto,
|
@Body() updateScheduleDto: UpdateScheduleDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const schedule = await this.scheduleService.updateDeviceSchedule(
|
||||||
const schedule = await this.scheduleService.updateDeviceSchedule(
|
deviceUuid,
|
||||||
deviceUuid,
|
updateScheduleDto,
|
||||||
updateScheduleDto,
|
);
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
statusCode: HttpStatus.CREATED,
|
statusCode: HttpStatus.CREATED,
|
||||||
success: true,
|
success: true,
|
||||||
message: 'schedule updated successfully',
|
message: 'schedule updated successfully',
|
||||||
data: schedule,
|
data: schedule,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
import {
|
import { Controller, Get, UseGuards } from '@nestjs/common';
|
||||||
Controller,
|
|
||||||
Get,
|
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
|
||||||
UseGuards,
|
|
||||||
} from '@nestjs/common';
|
|
||||||
import { TimeZoneService } from '../services/timezone.service';
|
import { TimeZoneService } from '../services/timezone.service';
|
||||||
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
|
||||||
import { JwtAuthGuard } from '../../../libs/common/src/guards/jwt.auth.guard';
|
import { JwtAuthGuard } from '../../../libs/common/src/guards/jwt.auth.guard';
|
||||||
@ -21,13 +15,6 @@ export class TimeZoneController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get()
|
@Get()
|
||||||
async getAllTimeZones() {
|
async getAllTimeZones() {
|
||||||
try {
|
return await this.timeZoneService.getAllTimeZones();
|
||||||
return await this.timeZoneService.getAllTimeZones();
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -36,35 +35,21 @@ export class UnitController {
|
|||||||
@UseGuards(JwtAuthGuard, CheckFloorTypeGuard)
|
@UseGuards(JwtAuthGuard, CheckFloorTypeGuard)
|
||||||
@Post()
|
@Post()
|
||||||
async addUnit(@Body() addUnitDto: AddUnitDto) {
|
async addUnit(@Body() addUnitDto: AddUnitDto) {
|
||||||
try {
|
const unit = await this.unitService.addUnit(addUnitDto);
|
||||||
const unit = await this.unitService.addUnit(addUnitDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'Unit added successfully',
|
||||||
message: 'Unit added successfully',
|
data: unit,
|
||||||
data: unit,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
||||||
@Get(':unitUuid')
|
@Get(':unitUuid')
|
||||||
async getUnitByUuid(@Param('unitUuid') unitUuid: string) {
|
async getUnitByUuid(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
const unit = await this.unitService.getUnitByUuid(unitUuid);
|
||||||
const unit = await this.unitService.getUnitByUuid(unitUuid);
|
return unit;
|
||||||
return unit;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -74,60 +59,32 @@ export class UnitController {
|
|||||||
@Param('unitUuid') unitUuid: string,
|
@Param('unitUuid') unitUuid: string,
|
||||||
@Query() query: GetUnitChildDto,
|
@Query() query: GetUnitChildDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const unit = await this.unitService.getUnitChildByUuid(unitUuid, query);
|
||||||
const unit = await this.unitService.getUnitChildByUuid(unitUuid, query);
|
return unit;
|
||||||
return unit;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
||||||
@Get('parent/:unitUuid')
|
@Get('parent/:unitUuid')
|
||||||
async getUnitParentByUuid(@Param('unitUuid') unitUuid: string) {
|
async getUnitParentByUuid(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
const unit = await this.unitService.getUnitParentByUuid(unitUuid);
|
||||||
const unit = await this.unitService.getUnitParentByUuid(unitUuid);
|
return unit;
|
||||||
return unit;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckUserUnitGuard)
|
@UseGuards(JwtAuthGuard, CheckUserUnitGuard)
|
||||||
@Post('user')
|
@Post('user')
|
||||||
async addUserUnit(@Body() addUserUnitDto: AddUserUnitDto) {
|
async addUserUnit(@Body() addUserUnitDto: AddUserUnitDto) {
|
||||||
try {
|
await this.unitService.addUserUnit(addUserUnitDto);
|
||||||
await this.unitService.addUserUnit(addUserUnitDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user unit added successfully',
|
||||||
message: 'user unit added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('user/:userUuid')
|
@Get('user/:userUuid')
|
||||||
async getUnitsByUserId(@Param('userUuid') userUuid: string) {
|
async getUnitsByUserId(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.unitService.getUnitsByUserId(userUuid);
|
||||||
return await this.unitService.getUnitsByUserId(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -137,32 +94,18 @@ export class UnitController {
|
|||||||
@Param('unitUuid') unitUuid: string,
|
@Param('unitUuid') unitUuid: string,
|
||||||
@Body() updateUnitNameDto: UpdateUnitNameDto,
|
@Body() updateUnitNameDto: UpdateUnitNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const unit = await this.unitService.renameUnitByUuid(
|
||||||
const unit = await this.unitService.renameUnitByUuid(
|
unitUuid,
|
||||||
unitUuid,
|
updateUnitNameDto,
|
||||||
updateUnitNameDto,
|
);
|
||||||
);
|
return unit;
|
||||||
return unit;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
@UseGuards(JwtAuthGuard, UnitPermissionGuard)
|
||||||
@Get(':unitUuid/invitation-code')
|
@Get(':unitUuid/invitation-code')
|
||||||
async getUnitInvitationCode(@Param('unitUuid') unitUuid: string) {
|
async getUnitInvitationCode(@Param('unitUuid') unitUuid: string) {
|
||||||
try {
|
const unit = await this.unitService.getUnitInvitationCode(unitUuid);
|
||||||
const unit = await this.unitService.getUnitInvitationCode(unitUuid);
|
return unit;
|
||||||
return unit;
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -171,18 +114,11 @@ export class UnitController {
|
|||||||
async verifyCodeAndAddUserUnit(
|
async verifyCodeAndAddUserUnit(
|
||||||
@Body() addUserUnitUsingCodeDto: AddUserUnitUsingCodeDto,
|
@Body() addUserUnitUsingCodeDto: AddUserUnitUsingCodeDto,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.unitService.verifyCodeAndAddUserUnit(addUserUnitUsingCodeDto);
|
||||||
await this.unitService.verifyCodeAndAddUserUnit(addUserUnitUsingCodeDto);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'user unit added successfully',
|
||||||
message: 'user unit added successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -32,22 +31,14 @@ export class UserDevicePermissionController {
|
|||||||
async addDevicePermission(
|
async addDevicePermission(
|
||||||
@Body() userDevicePermissionDto: UserDevicePermissionAddDto,
|
@Body() userDevicePermissionDto: UserDevicePermissionAddDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const addDetails = await this.userDevicePermissionService.addUserPermission(
|
||||||
const addDetails =
|
userDevicePermissionDto,
|
||||||
await this.userDevicePermissionService.addUserPermission(
|
);
|
||||||
userDevicePermissionDto,
|
return {
|
||||||
);
|
statusCode: HttpStatus.CREATED,
|
||||||
return {
|
message: 'User Permission for Devices Added Successfully',
|
||||||
statusCode: HttpStatus.CREATED,
|
data: addDetails,
|
||||||
message: 'User Permission for Devices Added Successfully',
|
};
|
||||||
data: addDetails,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@ -57,38 +48,27 @@ export class UserDevicePermissionController {
|
|||||||
@Param('devicePermissionUuid') devicePermissionUuid: string,
|
@Param('devicePermissionUuid') devicePermissionUuid: string,
|
||||||
@Body() userDevicePermissionEditDto: UserDevicePermissionEditDto,
|
@Body() userDevicePermissionEditDto: UserDevicePermissionEditDto,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.userDevicePermissionService.editUserPermission(
|
||||||
await this.userDevicePermissionService.editUserPermission(
|
devicePermissionUuid,
|
||||||
devicePermissionUuid,
|
userDevicePermissionEditDto,
|
||||||
userDevicePermissionEditDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User Permission for Devices Updated Successfully',
|
||||||
message: 'User Permission for Devices Updated Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard)
|
@UseGuards(AdminRoleGuard)
|
||||||
@Get(':deviceUuid/list')
|
@Get(':deviceUuid/list')
|
||||||
async fetchDevicePermission(@Param('deviceUuid') deviceUuid: string) {
|
async fetchDevicePermission(@Param('deviceUuid') deviceUuid: string) {
|
||||||
try {
|
const deviceDetails =
|
||||||
const deviceDetails =
|
await this.userDevicePermissionService.fetchUserPermission(deviceUuid);
|
||||||
await this.userDevicePermissionService.fetchUserPermission(deviceUuid);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'Device Details fetched Successfully',
|
||||||
message: 'Device Details fetched Successfully',
|
data: deviceDetails,
|
||||||
data: deviceDetails,
|
};
|
||||||
};
|
|
||||||
} catch (err) {
|
|
||||||
throw new Error(err);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(AdminRoleGuard)
|
@UseGuards(AdminRoleGuard)
|
||||||
@ -96,19 +76,12 @@ export class UserDevicePermissionController {
|
|||||||
async deleteDevicePermission(
|
async deleteDevicePermission(
|
||||||
@Param('devicePermissionUuid') devicePermissionUuid: string,
|
@Param('devicePermissionUuid') devicePermissionUuid: string,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.userDevicePermissionService.deleteDevicePermission(
|
||||||
await this.userDevicePermissionService.deleteDevicePermission(
|
devicePermissionUuid,
|
||||||
devicePermissionUuid,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User Permission for Devices Deleted Successfully',
|
||||||
message: 'User Permission for Devices Deleted Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Post,
|
Post,
|
||||||
@ -34,41 +33,27 @@ export class UserNotificationController {
|
|||||||
async addUserSubscription(
|
async addUserSubscription(
|
||||||
@Body() userNotificationAddDto: UserNotificationAddDto,
|
@Body() userNotificationAddDto: UserNotificationAddDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const addDetails = await this.userNotificationService.addUserSubscription(
|
||||||
const addDetails = await this.userNotificationService.addUserSubscription(
|
userNotificationAddDto,
|
||||||
userNotificationAddDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
message: 'User Notification Added Successfully',
|
||||||
message: 'User Notification Added Successfully',
|
data: addDetails,
|
||||||
data: addDetails,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get(':userUuid')
|
@Get(':userUuid')
|
||||||
async fetchUserSubscriptions(@Param('userUuid') userUuid: string) {
|
async fetchUserSubscriptions(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
const userDetails =
|
||||||
const userDetails =
|
await this.userNotificationService.fetchUserSubscriptions(userUuid);
|
||||||
await this.userNotificationService.fetchUserSubscriptions(userUuid);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User Notification fetched Successfully',
|
||||||
message: 'User Notification fetched Successfully',
|
data: { ...userDetails },
|
||||||
data: { ...userDetails },
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -76,19 +61,12 @@ export class UserNotificationController {
|
|||||||
async updateUserSubscription(
|
async updateUserSubscription(
|
||||||
@Body() userNotificationUpdateDto: UserNotificationUpdateDto,
|
@Body() userNotificationUpdateDto: UserNotificationUpdateDto,
|
||||||
) {
|
) {
|
||||||
try {
|
await this.userNotificationService.updateUserSubscription(
|
||||||
await this.userNotificationService.updateUserSubscription(
|
userNotificationUpdateDto,
|
||||||
userNotificationUpdateDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.OK,
|
||||||
statusCode: HttpStatus.OK,
|
message: 'User subscription updated Successfully',
|
||||||
message: 'User subscription updated Successfully',
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Param,
|
Param,
|
||||||
Put,
|
Put,
|
||||||
@ -33,14 +32,7 @@ export class UserController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get(':userUuid')
|
@Get(':userUuid')
|
||||||
async getUserDetailsByUserUuid(@Param('userUuid') userUuid: string) {
|
async getUserDetailsByUserUuid(@Param('userUuid') userUuid: string) {
|
||||||
try {
|
return await this.userService.getUserDetailsByUserUuid(userUuid);
|
||||||
return await this.userService.getUserDetailsByUserUuid(userUuid);
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard, CheckProfilePictureGuard)
|
@UseGuards(JwtAuthGuard, CheckProfilePictureGuard)
|
||||||
@ -49,23 +41,16 @@ export class UserController {
|
|||||||
@Param('userUuid') userUuid: string,
|
@Param('userUuid') userUuid: string,
|
||||||
@Body() updateProfilePictureDataDto: UpdateProfilePictureDataDto,
|
@Body() updateProfilePictureDataDto: UpdateProfilePictureDataDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const userData = await this.userService.updateProfilePictureByUserUuid(
|
||||||
const userData = await this.userService.updateProfilePictureByUserUuid(
|
userUuid,
|
||||||
userUuid,
|
updateProfilePictureDataDto,
|
||||||
updateProfilePictureDataDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'profile picture updated successfully',
|
||||||
message: 'profile picture updated successfully',
|
data: userData,
|
||||||
data: userData,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -74,23 +59,16 @@ export class UserController {
|
|||||||
@Param('userUuid') userUuid: string,
|
@Param('userUuid') userUuid: string,
|
||||||
@Body() updateRegionDataDto: UpdateRegionDataDto,
|
@Body() updateRegionDataDto: UpdateRegionDataDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const userData = await this.userService.updateRegionByUserUuid(
|
||||||
const userData = await this.userService.updateRegionByUserUuid(
|
userUuid,
|
||||||
userUuid,
|
updateRegionDataDto,
|
||||||
updateRegionDataDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'region updated successfully',
|
||||||
message: 'region updated successfully',
|
data: userData,
|
||||||
data: userData,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -99,23 +77,16 @@ export class UserController {
|
|||||||
@Param('userUuid') userUuid: string,
|
@Param('userUuid') userUuid: string,
|
||||||
@Body() updateTimezoneDataDto: UpdateTimezoneDataDto,
|
@Body() updateTimezoneDataDto: UpdateTimezoneDataDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const userData = await this.userService.updateTimezoneByUserUuid(
|
||||||
const userData = await this.userService.updateTimezoneByUserUuid(
|
userUuid,
|
||||||
userUuid,
|
updateTimezoneDataDto,
|
||||||
updateTimezoneDataDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'timezone updated successfully',
|
||||||
message: 'timezone updated successfully',
|
data: userData,
|
||||||
data: userData,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -124,23 +95,16 @@ export class UserController {
|
|||||||
@Param('userUuid') userUuid: string,
|
@Param('userUuid') userUuid: string,
|
||||||
@Body() updateNameDto: UpdateNameDto,
|
@Body() updateNameDto: UpdateNameDto,
|
||||||
) {
|
) {
|
||||||
try {
|
const userData = await this.userService.updateNameByUserUuid(
|
||||||
const userData = await this.userService.updateNameByUserUuid(
|
userUuid,
|
||||||
userUuid,
|
updateNameDto,
|
||||||
updateNameDto,
|
);
|
||||||
);
|
return {
|
||||||
return {
|
statusCode: HttpStatus.CREATED,
|
||||||
statusCode: HttpStatus.CREATED,
|
success: true,
|
||||||
success: true,
|
message: 'name updated successfully',
|
||||||
message: 'name updated successfully',
|
data: userData,
|
||||||
data: userData,
|
};
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(SuperAdminRoleGuard)
|
@UseGuards(SuperAdminRoleGuard)
|
||||||
|
@ -3,7 +3,6 @@ import {
|
|||||||
Body,
|
Body,
|
||||||
Controller,
|
Controller,
|
||||||
Post,
|
Post,
|
||||||
HttpException,
|
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
UseGuards,
|
UseGuards,
|
||||||
Get,
|
Get,
|
||||||
@ -34,24 +33,17 @@ export class VisitorPasswordController {
|
|||||||
@Body() addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
@Body() addDoorLockOnlineMultipleDto: AddDoorLockOnlineMultipleDto,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
const temporaryPasswords =
|
||||||
const temporaryPasswords =
|
await this.visitorPasswordService.addOnlineTemporaryPasswordMultipleTime(
|
||||||
await this.visitorPasswordService.addOnlineTemporaryPasswordMultipleTime(
|
addDoorLockOnlineMultipleDto,
|
||||||
addDoorLockOnlineMultipleDto,
|
userUuid,
|
||||||
userUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
data: temporaryPasswords,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
data: temporaryPasswords,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -60,24 +52,17 @@ export class VisitorPasswordController {
|
|||||||
@Body() addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
@Body() addDoorLockOnlineOneTimeDto: AddDoorLockOnlineOneTimeDto,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
const temporaryPasswords =
|
||||||
const temporaryPasswords =
|
await this.visitorPasswordService.addOnlineTemporaryPasswordOneTime(
|
||||||
await this.visitorPasswordService.addOnlineTemporaryPasswordOneTime(
|
addDoorLockOnlineOneTimeDto,
|
||||||
addDoorLockOnlineOneTimeDto,
|
userUuid,
|
||||||
userUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
data: temporaryPasswords,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
data: temporaryPasswords,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -86,24 +71,17 @@ export class VisitorPasswordController {
|
|||||||
@Body() addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
@Body() addDoorLockOfflineOneTimeDto: AddDoorLockOfflineOneTimeDto,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.visitorPasswordService.addOfflineOneTimeTemporaryPassword(
|
||||||
await this.visitorPasswordService.addOfflineOneTimeTemporaryPassword(
|
addDoorLockOfflineOneTimeDto,
|
||||||
addDoorLockOfflineOneTimeDto,
|
userUuid,
|
||||||
userUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
data: temporaryPassword,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
data: temporaryPassword,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@ -113,49 +91,28 @@ export class VisitorPasswordController {
|
|||||||
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
addDoorLockOfflineMultipleDto: AddDoorLockOfflineMultipleDto,
|
||||||
@Req() req: any,
|
@Req() req: any,
|
||||||
) {
|
) {
|
||||||
try {
|
const userUuid = req.user.uuid;
|
||||||
const userUuid = req.user.uuid;
|
const temporaryPassword =
|
||||||
const temporaryPassword =
|
await this.visitorPasswordService.addOfflineMultipleTimeTemporaryPassword(
|
||||||
await this.visitorPasswordService.addOfflineMultipleTimeTemporaryPassword(
|
addDoorLockOfflineMultipleDto,
|
||||||
addDoorLockOfflineMultipleDto,
|
userUuid,
|
||||||
userUuid,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
statusCode: HttpStatus.CREATED,
|
|
||||||
data: temporaryPassword,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
return {
|
||||||
|
statusCode: HttpStatus.CREATED,
|
||||||
|
data: temporaryPassword,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get()
|
@Get()
|
||||||
async GetVisitorPassword() {
|
async GetVisitorPassword() {
|
||||||
try {
|
return await this.visitorPasswordService.getPasswords();
|
||||||
return await this.visitorPasswordService.getPasswords();
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Get('/devices')
|
@Get('/devices')
|
||||||
async GetVisitorDevices() {
|
async GetVisitorDevices() {
|
||||||
try {
|
return await this.visitorPasswordService.getAllPassDevices();
|
||||||
return await this.visitorPasswordService.getAllPassDevices();
|
|
||||||
} catch (error) {
|
|
||||||
throw new HttpException(
|
|
||||||
error.message || 'Internal server error',
|
|
||||||
error.status || HttpStatus.INTERNAL_SERVER_ERROR,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user