diff --git a/02-TypeScript/16-CRUD/example/index.html b/02-TypeScript/16-CRUD/example/index.html
new file mode 100644
index 000000000..2a527a636
--- /dev/null
+++ b/02-TypeScript/16-CRUD/example/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ Store
+
+
+
+
+
+
+
+
+
+ Store
+ set product
+
+
+
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.d.ts
new file mode 100644
index 000000000..3859d69c3
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.d.ts
@@ -0,0 +1,6 @@
+import { AppService } from './app.service';
+export declare class AppController {
+ private readonly appService;
+ constructor(appService: AppService);
+ getHello(): string;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js
new file mode 100644
index 000000000..dcf0f7731
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js
@@ -0,0 +1,34 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AppController = void 0;
+const common_1 = require("@nestjs/common");
+const app_service_1 = require("./app.service");
+let AppController = class AppController {
+ constructor(appService) {
+ this.appService = appService;
+ }
+ getHello() {
+ return this.appService.getHello();
+ }
+};
+__decorate([
+ (0, common_1.Get)(),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", []),
+ __metadata("design:returntype", String)
+], AppController.prototype, "getHello", null);
+AppController = __decorate([
+ (0, common_1.Controller)(),
+ __metadata("design:paramtypes", [app_service_1.AppService])
+], AppController);
+exports.AppController = AppController;
+//# sourceMappingURL=app.controller.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js.map
new file mode 100644
index 000000000..ba11630d4
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../src/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,+CAA2C;AAGpC,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAGvD,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AAJC;IAAC,IAAA,YAAG,GAAE;;;;6CAGL;AANU,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAE8B,wBAAU;GADxC,aAAa,CAOzB;AAPY,sCAAa"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.d.ts
new file mode 100644
index 000000000..09cdb35c8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.d.ts
@@ -0,0 +1,2 @@
+export declare class AppModule {
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js
new file mode 100644
index 000000000..a15dbb80b
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js
@@ -0,0 +1,26 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AppModule = void 0;
+const common_1 = require("@nestjs/common");
+const app_controller_1 = require("./app.controller");
+const app_service_1 = require("./app.service");
+const classes_module_1 = require("./models/classes/classes.module");
+const students_module_1 = require("./models/students/students.module");
+const database_1 = require("./providers/database");
+let AppModule = class AppModule {
+};
+AppModule = __decorate([
+ (0, common_1.Module)({
+ imports: [classes_module_1.ClassesModule, students_module_1.StudentsModule, database_1.DatabaseModule],
+ controllers: [app_controller_1.AppController],
+ providers: [app_service_1.AppService],
+ })
+], AppModule);
+exports.AppModule = AppModule;
+//# sourceMappingURL=app.module.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js.map
new file mode 100644
index 000000000..537ab3e2e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,oEAAgE;AAChE,uEAAmE;AACnE,mDAAsD;AAO/C,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,gCAAc,EAAC,yBAAc,CAAC;QACvD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.d.ts
new file mode 100644
index 000000000..0496e7902
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.d.ts
@@ -0,0 +1,3 @@
+export declare class AppService {
+ getHello(): string;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js
new file mode 100644
index 000000000..6e6dfec2b
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js
@@ -0,0 +1,20 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AppService = void 0;
+const common_1 = require("@nestjs/common");
+let AppService = class AppService {
+ getHello() {
+ return 'Ksen is learning server side and loves it!';
+ }
+};
+AppService = __decorate([
+ (0, common_1.Injectable)()
+], AppService);
+exports.AppService = AppService;
+//# sourceMappingURL=app.service.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js.map
new file mode 100644
index 000000000..ab3c93d87
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/app.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"app.service.js","sourceRoot":"","sources":["../src/app.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAGrC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,QAAQ;QACN,OAAO,4CAA4C,CAAC;IACtD,CAAC;CACF,CAAA;AAJY,UAAU;IADtB,IAAA,mBAAU,GAAE;GACA,UAAU,CAItB;AAJY,gCAAU"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.d.ts
new file mode 100644
index 000000000..3c8f748ec
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.d.ts
@@ -0,0 +1,2 @@
+export * from './ormOp';
+export * from './providers';
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js
new file mode 100644
index 000000000..614893c32
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js
@@ -0,0 +1,19 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./ormOp"), exports);
+__exportStar(require("./providers"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js.map
new file mode 100644
index 000000000..ad00d33c2
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.d.ts
new file mode 100644
index 000000000..e46e0d595
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.d.ts
@@ -0,0 +1,13 @@
+export declare const operatorsORM: {
+ in: symbol;
+ or: symbol;
+ gt: symbol;
+ lt: symbol;
+ lte: symbol;
+ not: symbol;
+ gte: symbol;
+ and: symbol;
+ equal: symbol;
+ like: symbol;
+ notEqual: symbol;
+};
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js
new file mode 100644
index 000000000..8894a39bb
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js
@@ -0,0 +1,18 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.operatorsORM = void 0;
+const sequelize_1 = require("sequelize");
+exports.operatorsORM = {
+ in: sequelize_1.Op.in,
+ or: sequelize_1.Op.or,
+ gt: sequelize_1.Op.gt,
+ lt: sequelize_1.Op.lt,
+ lte: sequelize_1.Op.lte,
+ not: sequelize_1.Op.not,
+ gte: sequelize_1.Op.gte,
+ and: sequelize_1.Op.and,
+ equal: sequelize_1.Op.eq,
+ like: sequelize_1.Op.like,
+ notEqual: sequelize_1.Op.ne
+};
+//# sourceMappingURL=ormOp.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js.map
new file mode 100644
index 000000000..9a0c465b8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/ormOp.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ormOp.js","sourceRoot":"","sources":["../../../src/common/constants/ormOp.ts"],"names":[],"mappings":";;;AACA,yCAA+B;AAElB,QAAA,YAAY,GAAG;IAC1B,EAAE,EAAE,cAAE,CAAC,EAAE;IACT,EAAE,EAAE,cAAE,CAAC,EAAE;IACT,EAAE,EAAE,cAAE,CAAC,EAAE;IACT,EAAE,EAAE,cAAE,CAAC,EAAE;IACT,GAAG,EAAE,cAAE,CAAC,GAAG;IACX,GAAG,EAAE,cAAE,CAAC,GAAG;IACX,GAAG,EAAE,cAAE,CAAC,GAAG;IACX,GAAG,EAAE,cAAE,CAAC,GAAG;IACX,KAAK,EAAE,cAAE,CAAC,EAAE;IACZ,IAAI,EAAE,cAAE,CAAC,IAAI;IACb,QAAQ,EAAE,cAAE,CAAC,EAAE;CAChB,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.d.ts
new file mode 100644
index 000000000..f77672541
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.d.ts
@@ -0,0 +1,3 @@
+export declare const SEQUELIZE = "SEQUELIZE";
+export declare const CLASS = "CLASS";
+export declare const STUDENT = "STUDENT";
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js
new file mode 100644
index 000000000..7d6c57112
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js
@@ -0,0 +1,7 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.STUDENT = exports.CLASS = exports.SEQUELIZE = void 0;
+exports.SEQUELIZE = 'SEQUELIZE';
+exports.CLASS = 'CLASS';
+exports.STUDENT = 'STUDENT';
+//# sourceMappingURL=providers.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js.map
new file mode 100644
index 000000000..79bdcb34d
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/constants/providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/common/constants/providers.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,WAAW,CAAC;AAExB,QAAA,KAAK,GAAG,OAAO,CAAC;AAEhB,QAAA,OAAO,GAAG,SAAS,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.d.ts
new file mode 100644
index 000000000..3293e5fd8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.d.ts
@@ -0,0 +1 @@
+export * from './serialize.interceptor';
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js
new file mode 100644
index 000000000..597315f8e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js
@@ -0,0 +1,18 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./serialize.interceptor"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js.map
new file mode 100644
index 000000000..a61dd854c
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.d.ts
new file mode 100644
index 000000000..8ca71a6d6
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.d.ts
@@ -0,0 +1,6 @@
+import { Observable } from 'rxjs';
+import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
+export declare class SerializeInterceptor implements NestInterceptor {
+ intercept(context: ExecutionContext, next: CallHandler): Observable;
+ private serializeObject;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js
new file mode 100644
index 000000000..cc04b7525
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js
@@ -0,0 +1,31 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SerializeInterceptor = void 0;
+const utils_1 = require("../utils");
+const operators_1 = require("rxjs/operators");
+const common_1 = require("@nestjs/common");
+let SerializeInterceptor = class SerializeInterceptor {
+ intercept(context, next) {
+ return next.handle().pipe((0, operators_1.map)((value) => {
+ return !value
+ ? {}
+ : Array.isArray(value)
+ ? value.map((item) => this.serializeObject(item))
+ : this.serializeObject(value);
+ }));
+ }
+ serializeObject(value) {
+ return Object.assign({}, (0, utils_1.serializeSequelize)(value));
+ }
+};
+SerializeInterceptor = __decorate([
+ (0, common_1.Injectable)()
+], SerializeInterceptor);
+exports.SerializeInterceptor = SerializeInterceptor;
+//# sourceMappingURL=serialize.interceptor.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js.map
new file mode 100644
index 000000000..452049abb
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interceptors/serialize.interceptor.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"serialize.interceptor.js","sourceRoot":"","sources":["../../../src/common/interceptors/serialize.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AACA,oCAA8C;AAI9C,8CAAqC;AACrC,2CAKwB;AAGjB,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,KAAK,EAAE,EAAE;YACZ,OAAO,CAAC,KAAK;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACjD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAAK;QAC3B,yBAAY,IAAA,0BAAkB,EAAC,KAAK,CAAC,EAAG;IAC1C,CAAC;CACF,CAAA;AAhBY,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CAgBhC;AAhBY,oDAAoB"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.d.ts
new file mode 100644
index 000000000..58cc5dab4
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.d.ts
@@ -0,0 +1,2 @@
+export * from './orm.interface';
+export * from './memory.interface';
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js
new file mode 100644
index 000000000..ff90127d7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js
@@ -0,0 +1,19 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./orm.interface"), exports);
+__exportStar(require("./memory.interface"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js.map
new file mode 100644
index 000000000..2ebbf04e7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,qDAAmC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js
new file mode 100644
index 000000000..b345639fb
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=memory.interface.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js.map
new file mode 100644
index 000000000..63453dc5c
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/memory.interface.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"memory.interface.js","sourceRoot":"","sources":["../../../src/common/interfaces/memory.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js
new file mode 100644
index 000000000..d3522a191
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=orm.interface.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js.map
new file mode 100644
index 000000000..9184cfadd
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/interfaces/orm.interface.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"orm.interface.js","sourceRoot":"","sources":["../../../src/common/interfaces/orm.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.d.ts
new file mode 100644
index 000000000..df5197a7d
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.d.ts
@@ -0,0 +1,2 @@
+export * from "./orm.serializer";
+export * from "./memory.serializer";
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js
new file mode 100644
index 000000000..09c580ab2
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js
@@ -0,0 +1,19 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./orm.serializer"), exports);
+__exportStar(require("./memory.serializer"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js.map
new file mode 100644
index 000000000..45c6fd173
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/serializers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,sDAAoC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.d.ts
new file mode 100644
index 000000000..f60a82695
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.d.ts
@@ -0,0 +1,3 @@
+import { KeyWhereOptionsMemory, WhereOptionsMemory } from "../interfaces";
+export declare function serializerKeyWhereOptionsMemory(object: object, objectWhere: KeyWhereOptionsMemory): boolean;
+export declare function serializerWhereOptionsMemory(object: object, where: WhereOptionsMemory): boolean;
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js
new file mode 100644
index 000000000..7e9ca4c2e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.serializerWhereOptionsMemory = exports.serializerKeyWhereOptionsMemory = void 0;
+const utils_1 = require("../utils");
+const utils_2 = require("../utils");
+function serializerKeyWhereOptionsMemory(object, objectWhere) {
+ return Object.keys(objectWhere)
+ .map(keyWhere => {
+ const compareWhere = objectWhere[keyWhere];
+ if ((0, utils_2.isOperatorsOptionsMemory)(compareWhere)) {
+ return Object.keys(compareWhere)
+ .map((operators) => {
+ return utils_1.Op[operators](object, compareWhere[operators], keyWhere);
+ })
+ .every(Boolean);
+ }
+ return utils_1.Op.equal(object, compareWhere, keyWhere);
+ })
+ .every(Boolean);
+}
+exports.serializerKeyWhereOptionsMemory = serializerKeyWhereOptionsMemory;
+function serializerWhereOptionsMemory(object, where) {
+ if ("and" in where) {
+ return utils_1.Op.and(object, where.and);
+ }
+ if ("or" in where) {
+ return utils_1.Op.or(object, where.or);
+ }
+ return serializerKeyWhereOptionsMemory(object, where);
+}
+exports.serializerWhereOptionsMemory = serializerWhereOptionsMemory;
+//# sourceMappingURL=memory.serializer.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js.map
new file mode 100644
index 000000000..691d0d7c3
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/memory.serializer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"memory.serializer.js","sourceRoot":"","sources":["../../../src/common/serializers/memory.serializer.ts"],"names":[],"mappings":";;;AACA,oCAA8B;AAG9B,oCAAoD;AAKpD,SAAgB,+BAA+B,CAAI,MAAc,EAAE,WAAqC;IACtG,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;SAC5B,GAAG,CAAC,QAAQ,CAAC,EAAE;QACd,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,IAAA,gCAAwB,EAAC,YAAY,CAAC,EAAE;YAC1C,OAAQ,MAAM,CAAC,IAAI,CAAC,YAAY,CAA4C;iBACzE,GAAG,CAAC,CAAC,SAAS,EAAW,EAAE;gBAC1B,OAAO,UAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC,CAAC;iBACD,KAAK,CAAC,OAAO,CAAC,CAAC;SACnB;QAED,OAAO,UAAE,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC;SACD,KAAK,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAfD,0EAeC;AAED,SAAgB,4BAA4B,CAAI,MAAc,EAAE,KAA4B;IAC1F,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,OAAO,UAAE,CAAC,GAAG,CAAI,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACrC;IAED,IAAI,IAAI,IAAI,KAAK,EAAE;QACjB,OAAO,UAAE,CAAC,EAAE,CAAI,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;KACnC;IAED,OAAO,+BAA+B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAVD,oEAUC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.d.ts
new file mode 100644
index 000000000..8a4ccd6ae
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.d.ts
@@ -0,0 +1,7 @@
+import { FindOptions, WhereOptions, GroupOptions, RelationOptions } from "../interfaces";
+import { Includeable, FindOptions as SequelizeFindOptions, GroupOption as SequelizeGroupOptions, WhereOptions as SequelizeWhereOptions } from "sequelize";
+import { Model } from "sequelize-typescript";
+export declare function serializerRelationOptions>(relations: RelationOptions): Includeable[];
+export declare function serializerGroupOptions(groupOptions: GroupOptions): SequelizeGroupOptions;
+export declare function serializerWhereOptions(whereOptions: WhereOptions): SequelizeWhereOptions;
+export declare function serializerFindOptions>({ order, where, group, attributes, ...findOptions }: FindOptions): SequelizeFindOptions;
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js
new file mode 100644
index 000000000..4a3dde0ac
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js
@@ -0,0 +1,111 @@
+"use strict";
+var __rest = (this && this.__rest) || function (s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.serializerFindOptions = exports.serializerWhereOptions = exports.serializerGroupOptions = exports.serializerRelationOptions = void 0;
+const utils_1 = require("../utils");
+const constants_1 = require("../constants");
+const sequelize_1 = require("sequelize");
+function serializerFunctionOptions({ fn, column }) {
+ return (0, sequelize_1.fn)(fn, (0, sequelize_1.col)(column));
+}
+function serializerFindArrayAttributesOptions(attributes) {
+ if (!Array.isArray(attributes)) {
+ return;
+ }
+ return attributes.map(attribute => {
+ if (typeof attribute === "string") {
+ return attribute;
+ }
+ else if ("fn" in attribute) {
+ return [serializerFunctionOptions(attribute), attribute.alias];
+ }
+ return [attribute.name, attribute.alias];
+ });
+}
+function serializerFindAttributesOptions(attributes) {
+ if (typeof attributes !== "object" || attributes === null) {
+ return;
+ }
+ if (Array.isArray(attributes)) {
+ return serializerFindArrayAttributesOptions(attributes);
+ }
+ else if ("include" in attributes) {
+ return { include: serializerFindArrayAttributesOptions(attributes.include) };
+ }
+ else if ("exclude" in attributes) {
+ return { exclude: attributes.exclude };
+ }
+}
+function serializerOrderOptions(orderOptions) {
+ if (!Array.isArray(orderOptions)) {
+ return;
+ }
+ return orderOptions.map(({ by, order }) => [
+ typeof by === "string" ? by : serializerFunctionOptions(by),
+ order
+ ]);
+}
+function serializerJoinOptions(joinOptions) {
+ switch (joinOptions) {
+ case "INNER": {
+ return { required: true };
+ }
+ case "RIGHT": {
+ return { required: false, right: true };
+ }
+ case "LEFT":
+ default: {
+ return { required: false, right: false };
+ }
+ }
+}
+function serializerRelationOptions(relations) {
+ if (!relations) {
+ return [];
+ }
+ if (Array.isArray(relations)) {
+ return relations.map(serializerRelationObjectOptions);
+ }
+ return [serializerRelationObjectOptions(relations)];
+}
+exports.serializerRelationOptions = serializerRelationOptions;
+function serializerRelationObjectOptions(relationObject) {
+ if (!(0, utils_1.isObject)(relationObject)) {
+ return;
+ }
+ const { on, join, order, where, relations } = relationObject, relationshipsOptions = __rest(relationObject, ["on", "join", "order", "where", "relations"]);
+ return Object.assign(Object.assign(Object.assign({}, relationshipsOptions), serializerJoinOptions(join)), { on: serializerWhereOptions(on), order: serializerOrderOptions(order), where: serializerWhereOptions(where), include: serializerRelationOptions(relations) });
+}
+function serializerGroupOptions(groupOptions) {
+ if (!Array.isArray(groupOptions)) {
+ return;
+ }
+ return groupOptions.map(groupOption => {
+ if (typeof groupOption === "string") {
+ return groupOption;
+ }
+ return serializerFunctionOptions(groupOption);
+ });
+}
+exports.serializerGroupOptions = serializerGroupOptions;
+function serializerWhereOptions(whereOptions) {
+ const keys = (key) => constants_1.operatorsORM[key] || key;
+ return (0, utils_1.transformObj)(whereOptions, { keys });
+}
+exports.serializerWhereOptions = serializerWhereOptions;
+function serializerFindOptions(_a) {
+ var { order, where, group, attributes } = _a, findOptions = __rest(_a, ["order", "where", "group", "attributes"]);
+ return Object.assign(Object.assign({}, findOptions), { group: serializerGroupOptions(group), order: serializerOrderOptions(order), where: serializerWhereOptions(where), attributes: serializerFindAttributesOptions(attributes) });
+}
+exports.serializerFindOptions = serializerFindOptions;
+//# sourceMappingURL=orm.serializer.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js.map
new file mode 100644
index 000000000..fb0f495b8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/serializers/orm.serializer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"orm.serializer.js","sourceRoot":"","sources":["../../../src/common/serializers/orm.serializer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAgBA,oCAAkD;AAGlD,4CAA4C;AAG5C,yCAemB;AAGnB,SAAS,yBAAyB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAmB;IAChE,OAAO,IAAA,cAAW,EAAC,EAAE,EAAE,IAAA,eAAY,EAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,oCAAoC,CAC3C,UAAsC;IAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAE9B,OAAO;KACR;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAChC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,OAAO,SAAS,CAAC;SAClB;aAAM,IAAI,IAAI,IAAI,SAAS,EAAE;YAC5B,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;SAChE;QAED,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CAAI,UAAoC;IAC9E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE;QAEzD,OAAO;KACR;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO,oCAAoC,CAAC,UAAU,CAAC,CAAC;KACzD;SAAM,IAAI,SAAS,IAAI,UAAU,EAAE;QAClC,OAAO,EAAE,OAAO,EAAE,oCAAoC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;KAC9E;SAAM,IAAI,SAAS,IAAI,UAAU,EAAE;QAClC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAkB,EAAE,CAAC;KACnD;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,YAA0B;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAEhC,OAAO;KACR;IAED,OAAO,YAAY,CAAC,GAAG,CAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC3D,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAwB;IACrD,QAAQ,WAAW,EAAE;QACnB,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC3B;QACD,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACzC;QACD,KAAK,MAAM,CAAC;QACZ,OAAO,CAAC,CAAC;YACP,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAC1C;KACF;AACH,CAAC;AAED,SAAgB,yBAAyB,CAAqB,SAA6B;IACzF,IAAI,CAAC,SAAS,EAAE;QAEd,OAAO,EAAE,CAAC;KACX;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;KACvD;IAED,OAAO,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,CAAC;AAXD,8DAWC;AAED,SAAS,+BAA+B,CACtC,cAAwC;IAExC,IAAI,CAAC,IAAA,gBAAQ,EAAC,cAAc,CAAC,EAAE;QAE7B,OAAO;KACR;IAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,KAA8B,cAAc,EAAvC,oBAAoB,UAAK,cAAc,EAA/E,6CAA8D,CAAiB,CAAC;IACtF,qDACK,oBAAoB,GACpB,qBAAqB,CAAC,IAAI,CAAC,KAC9B,EAAE,EAAE,sBAAsB,CAAI,EAAE,CAAC,EACjC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,EACpC,KAAK,EAAE,sBAAsB,CAAI,KAAK,CAAC,EACvC,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,IAC7C;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,YAA0B;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAEhC,OAAO;KACR;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACpC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,OAAO,WAAW,CAAC;SACpB;QAED,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,wDAaC;AAED,SAAgB,sBAAsB,CAAI,YAA6B;IACrE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAmB,EAAE,CAAC,wBAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAExE,OAAO,IAAA,oBAAY,EAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAJD,wDAIC;AAED,SAAgB,qBAAqB,CAAqB,EAMzC;QANyC,EACxD,KAAK,EACL,KAAK,EACL,KAAK,EACL,UAAU,OAEK,EADZ,WAAW,cAL0C,yCAMzD,CADe;IAEd,uCACK,WAAW,KACd,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,EACpC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,EACpC,KAAK,EAAE,sBAAsB,CAAI,KAAK,CAAC,EACvC,UAAU,EAAE,+BAA+B,CAAI,UAAU,CAAC,IAC1D;AACJ,CAAC;AAdD,sDAcC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.d.ts
new file mode 100644
index 000000000..61d43e8e7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.d.ts
@@ -0,0 +1,6 @@
+import { OperatorsOptionsMemory } from "../interfaces";
+export declare const isNumber: (value: unknown) => value is number;
+export declare const isString: (value: unknown) => value is string;
+export declare const isDate: (value: unknown) => value is Date;
+export declare const isObject: (value: unknown) => value is object;
+export declare function isOperatorsOptionsMemory(obj: unknown): obj is OperatorsOptionsMemory;
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js
new file mode 100644
index 000000000..bda4569af
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isOperatorsOptionsMemory = exports.isObject = exports.isDate = exports.isString = exports.isNumber = void 0;
+const isNumber = (value) => typeof value === "number" || value instanceof Number;
+exports.isNumber = isNumber;
+const isString = (value) => typeof value === "string" || value instanceof String;
+exports.isString = isString;
+const isDate = (value) => value instanceof Date;
+exports.isDate = isDate;
+const isObject = (value) => value === null ? false : typeof value === "function" || typeof value === "object";
+exports.isObject = isObject;
+function isOperatorsOptionsMemory(obj) {
+ return typeof obj === "object" && !(obj instanceof Date);
+}
+exports.isOperatorsOptionsMemory = isOperatorsOptionsMemory;
+//# sourceMappingURL=check-type.utils.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js.map
new file mode 100644
index 000000000..db2b30db7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/check-type.utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"check-type.utils.js","sourceRoot":"","sources":["../../../src/common/utils/check-type.utils.ts"],"names":[],"mappings":";;;AAGO,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC;AAD1C,QAAA,QAAQ,YACkC;AAEhD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC;AAD1C,QAAA,QAAQ,YACkC;AAEhD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC;AAAlE,QAAA,MAAM,UAA4D;AAExE,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AADvE,QAAA,QAAQ,YAC+D;AAEpF,SAAgB,wBAAwB,CAAI,GAAY;IACtD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAC3D,CAAC;AAFD,4DAEC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.d.ts
new file mode 100644
index 000000000..4196ea579
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.d.ts
@@ -0,0 +1,4 @@
+export * from './check-type.utils';
+export * from './transform-obj.utils';
+export * from './operators-memory.utils';
+export * from './serialize-sequelize.utils';
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js
new file mode 100644
index 000000000..e500f25d9
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js
@@ -0,0 +1,21 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./check-type.utils"), exports);
+__exportStar(require("./transform-obj.utils"), exports);
+__exportStar(require("./operators-memory.utils"), exports);
+__exportStar(require("./serialize-sequelize.utils"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js.map
new file mode 100644
index 000000000..d22606e3e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,wDAAsC;AACtC,2DAAyC;AACzC,8DAA4C"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.d.ts
new file mode 100644
index 000000000..6034dd4b3
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.d.ts
@@ -0,0 +1 @@
+export declare const isObject: (property: any) => boolean;
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js
new file mode 100644
index 000000000..49ae99970
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isObject = void 0;
+const isObject = property => {
+ return property !== null && typeof property === "object";
+};
+exports.isObject = isObject;
+//# sourceMappingURL=objectUtils.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js.map
new file mode 100644
index 000000000..34c4c3fa7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/objectUtils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"objectUtils.js","sourceRoot":"","sources":["../../../src/common/utils/objectUtils.ts"],"names":[],"mappings":";;;AAAO,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE;IACjC,OAAO,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.d.ts
new file mode 100644
index 000000000..a15c68a24
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.d.ts
@@ -0,0 +1,16 @@
+import { OperatorsANDORMemory } from "../interfaces";
+export declare const Op: {
+ or: typeof or;
+ and: typeof and;
+ gt: (object: object, compare: primitiveTypes, key: string) => boolean;
+ lt: (object: object, compare: primitiveTypes, key: string) => boolean;
+ like: (object: object, like: primitiveTypes, key: string) => any;
+ lte: (object: object, compare: primitiveTypes, key: string) => boolean;
+ gte: (object: object, compare: primitiveTypes, key: string) => boolean;
+ equal: (object: object, compare: primitiveTypes, key: string) => boolean;
+ notEqual: (object: object, compare: primitiveTypes, key: string) => boolean;
+ in: (object: object, compare: Array, key: string) => boolean;
+};
+declare function and(object: object, compare: OperatorsANDORMemory["and"]): boolean;
+declare function or(object: object, compare: OperatorsANDORMemory["or"], key?: string): boolean;
+export {};
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js
new file mode 100644
index 000000000..0565469c1
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Op = void 0;
+const _1 = require(".");
+const serializers_1 = require("../serializers");
+exports.Op = {
+ or: or,
+ and: and,
+ gt: (object, compare, key) => object[key] > compare,
+ lt: (object, compare, key) => object[key] < compare,
+ like: (object, like, key) => object[key].match(like),
+ lte: (object, compare, key) => object[key] <= compare,
+ gte: (object, compare, key) => object[key] >= compare,
+ equal: (object, compare, key) => object[key] === compare,
+ notEqual: (object, compare, key) => object[key] !== compare,
+ in: (object, compare, key) => compare.includes(object[key])
+};
+function and(object, compare) {
+ return compare.map(objectWhere => (0, serializers_1.serializerKeyWhereOptionsMemory)(object, objectWhere)).every(Boolean);
+}
+function or(object, compare, key) {
+ if (Array.isArray(compare)) {
+ return compare
+ .map(objectWhere => {
+ if ((0, _1.isObject)(objectWhere) && !(0, _1.isDate)(objectWhere)) {
+ return (0, serializers_1.serializerWhereOptionsMemory)(object, objectWhere);
+ }
+ return exports.Op.equal(object, objectWhere, key);
+ })
+ .some(Boolean);
+ }
+}
+//# sourceMappingURL=operators-memory.utils.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js.map
new file mode 100644
index 000000000..f20945b9f
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/operators-memory.utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"operators-memory.utils.js","sourceRoot":"","sources":["../../../src/common/utils/operators-memory.utils.ts"],"names":[],"mappings":";;;AACA,wBAAqC;AAMrC,gDAA+F;AAElF,QAAA,EAAE,GAAG;IAChB,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,GAAG;IACR,EAAE,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO;IACnF,EAAE,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO;IACnF,IAAI,EAAE,CAAC,MAAc,EAAE,IAAoB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpF,GAAG,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO;IACrF,GAAG,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO;IACrF,KAAK,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO;IACxF,QAAQ,EAAE,CAAC,MAAc,EAAE,OAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO;IAC3F,EAAE,EAAE,CAAC,MAAc,EAAE,OAA8B,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACnG,CAAC;AAEF,SAAS,GAAG,CAAI,MAAc,EAAE,OAAuC;IACrE,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,IAAA,6CAA+B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,EAAE,CAAI,MAAc,EAAE,OAAsC,EAAE,GAAY;IACjF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,OAAO;aACX,GAAG,CAAC,WAAW,CAAC,EAAE;YACjB,IAAI,IAAA,WAAQ,EAAC,WAAW,CAAC,IAAI,CAAC,IAAA,SAAM,EAAC,WAAW,CAAC,EAAE;gBACjD,OAAO,IAAA,0CAA4B,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;aAC1D;YAED,OAAO,UAAE,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,IAAI,CAAC,OAAO,CAAC,CAAC;KAClB;AACH,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.d.ts
new file mode 100644
index 000000000..07af7889a
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.d.ts
@@ -0,0 +1,2 @@
+import { Model } from "sequelize";
+export declare function serializeSequelize(value: Model | object): any;
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js
new file mode 100644
index 000000000..5dbcee45f
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.serializeSequelize = void 0;
+const sequelize_1 = require("sequelize");
+function serializeSequelize(value) {
+ if (value instanceof sequelize_1.Model) {
+ return value.toJSON();
+ }
+ return value;
+}
+exports.serializeSequelize = serializeSequelize;
+//# sourceMappingURL=serialize-sequelize.utils.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js.map
new file mode 100644
index 000000000..b5d2d1dc7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/serialize-sequelize.utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"serialize-sequelize.utils.js","sourceRoot":"","sources":["../../../src/common/utils/serialize-sequelize.utils.ts"],"names":[],"mappings":";;;AACA,yCAAkC;AAElC,SAAgB,kBAAkB,CAAC,KAAqB;IACtD,IAAI,KAAK,YAAY,iBAAK,EAAE;QAC1B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;KACvB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAND,gDAMC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.d.ts
new file mode 100644
index 000000000..89e26d859
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.d.ts
@@ -0,0 +1,7 @@
+type values = (values: string) => string;
+type keys = (key: string) => string | symbol;
+export declare function transformObj(obj: T, transforms: {
+ values?: values;
+ keys?: keys;
+}): U;
+export {};
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js
new file mode 100644
index 000000000..865f19c8d
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.transformObj = void 0;
+function transformObj(obj, transforms) {
+ if (typeof obj !== "object" || obj === null) {
+ return;
+ }
+ function convertValue(value) {
+ if (Array.isArray(value)) {
+ return value.map(convertValue);
+ }
+ else if (typeof value === "object") {
+ return transformObj(value, transforms);
+ }
+ else if ("values" in transforms) {
+ return transforms.values(value);
+ }
+ else {
+ return value;
+ }
+ }
+ return Object.keys(obj).reduce((result, key) => {
+ const value = obj[key];
+ let newKey = key;
+ if ("keys" in transforms) {
+ newKey = transforms.keys(key);
+ }
+ result[newKey] = convertValue(value);
+ return result;
+ }, {});
+}
+exports.transformObj = transformObj;
+//# sourceMappingURL=transform-obj.utils.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js.map
new file mode 100644
index 000000000..0ef35c082
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/common/utils/transform-obj.utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"transform-obj.utils.js","sourceRoot":"","sources":["../../../src/common/utils/transform-obj.utils.ts"],"names":[],"mappings":";;;AA8BA,SAAgB,YAAY,CAC1B,GAAM,EACN,UAA4C;IAE5C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QAE3C,OAAO;KACR;IAED,SAAS,YAAY,CAAC,KAAK;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAChC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,OAAO,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;SACxC;aAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;YAEjC,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,MAAM,GAAoB,GAAG,CAAC;QAElC,IAAI,MAAM,IAAI,UAAU,EAAE;YAExB,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/B;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC;AAnCD,oCAmCC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.d.ts
new file mode 100644
index 000000000..cb0ff5c3b
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js
new file mode 100644
index 000000000..456801d95
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const core_1 = require("@nestjs/core");
+const app_module_1 = require("./app.module");
+async function bootstrap() {
+ const app = await core_1.NestFactory.create(app_module_1.AppModule, { cors: true });
+ await app.listen(3000);
+}
+bootstrap();
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js.map
new file mode 100644
index 000000000..d246df5ef
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,EAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AACD,SAAS,EAAE,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.d.ts
new file mode 100644
index 000000000..d5bcb1fc8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.d.ts
@@ -0,0 +1,9 @@
+import { Class } from './entities/class.entity';
+import { Student } from '../students/entities/student.entity';
+export declare const classProviders: ({
+ provide: string;
+ useValue: typeof Class;
+} | {
+ provide: string;
+ useValue: typeof Student;
+})[];
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js
new file mode 100644
index 000000000..ed840ad40
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.classProviders = void 0;
+const class_entity_1 = require("./entities/class.entity");
+const constants_1 = require("../../common/constants");
+const student_entity_1 = require("../students/entities/student.entity");
+exports.classProviders = [
+ {
+ provide: constants_1.CLASS,
+ useValue: class_entity_1.Class,
+ },
+ {
+ provide: constants_1.STUDENT,
+ useValue: student_entity_1.Student,
+ },
+];
+//# sourceMappingURL=class.providers.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js.map
new file mode 100644
index 000000000..fbe3cd948
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/class.providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"class.providers.js","sourceRoot":"","sources":["../../../src/models/classes/class.providers.ts"],"names":[],"mappings":";;;AACA,0DAAgD;AAGhD,sDAAwD;AACxD,wEAA8D;AAEjD,QAAA,cAAc,GAAG;IAC5B;QACE,OAAO,EAAE,iBAAK;QACd,QAAQ,EAAE,oBAAK;KAChB;IACD;QACE,OAAO,EAAE,mBAAO;QAChB,QAAQ,EAAE,wBAAO;KAClB;CACF,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.d.ts
new file mode 100644
index 000000000..bd89405d0
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.d.ts
@@ -0,0 +1,9 @@
+import { ClassesService } from './classes.service';
+export declare class ClassesController {
+ private readonly classesService;
+ constructor(classesService: ClassesService);
+ findAll(): Promise;
+ availableClasses(): Promise;
+ findOne(id: string): Promise;
+ removeOne(id: string): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js
new file mode 100644
index 000000000..8ef4c344e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js
@@ -0,0 +1,66 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClassesController = void 0;
+const common_1 = require("@nestjs/common");
+const classes_service_1 = require("./classes.service");
+let ClassesController = class ClassesController {
+ constructor(classesService) {
+ this.classesService = classesService;
+ }
+ findAll() {
+ return this.classesService.findAll();
+ }
+ availableClasses() {
+ return this.classesService.availableClasses();
+ }
+ findOne(id) {
+ return this.classesService.findOne(+id);
+ }
+ removeOne(id) {
+ return this.classesService.removeOne(+id);
+ }
+};
+__decorate([
+ (0, common_1.Get)('/all'),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", []),
+ __metadata("design:returntype", void 0)
+], ClassesController.prototype, "findAll", null);
+__decorate([
+ (0, common_1.Get)('available'),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", []),
+ __metadata("design:returntype", void 0)
+], ClassesController.prototype, "availableClasses", null);
+__decorate([
+ (0, common_1.Get)(':id'),
+ __param(0, (0, common_1.Param)('id')),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", [String]),
+ __metadata("design:returntype", void 0)
+], ClassesController.prototype, "findOne", null);
+__decorate([
+ (0, common_1.Delete)(':id'),
+ __param(0, (0, common_1.Param)('id')),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", [String]),
+ __metadata("design:returntype", void 0)
+], ClassesController.prototype, "removeOne", null);
+ClassesController = __decorate([
+ (0, common_1.Controller)('classes'),
+ __metadata("design:paramtypes", [classes_service_1.ClassesService])
+], ClassesController);
+exports.ClassesController = ClassesController;
+//# sourceMappingURL=classes.controller.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js.map
new file mode 100644
index 000000000..0d57b4cb8
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"classes.controller.js","sourceRoot":"","sources":["../../../src/models/classes/classes.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAsE;AACtE,uDAAmD;AAI5C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAI/D,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAGD,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAA;IAC/C,CAAC;IAGD,OAAO,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAGF,SAAS,CAAc,EAAS;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;CACD,CAAA;AAnBC;IAAC,IAAA,YAAG,EAAC,MAAM,CAAC;;;;gDAGX;AAED;IAAC,IAAA,YAAG,EAAC,WAAW,CAAC;;;;yDAGhB;AAED;IAAC,IAAA,YAAG,EAAC,KAAK,CAAC;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;gDAEnB;AAEF;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACH,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;kDAErB;AAtBW,iBAAiB;IAD7B,IAAA,mBAAU,EAAC,SAAS,CAAC;qCAEyB,gCAAc;GADhD,iBAAiB,CAuB7B;AAvBY,8CAAiB"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.d.ts
new file mode 100644
index 000000000..d70320651
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.d.ts
@@ -0,0 +1,2 @@
+export declare class ClassesModule {
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js
new file mode 100644
index 000000000..7a292de0e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js
@@ -0,0 +1,28 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClassesModule = void 0;
+const common_1 = require("@nestjs/common");
+const classes_service_1 = require("./classes.service");
+const classes_controller_1 = require("./classes.controller");
+const classes_repository_1 = require("./classes.repository");
+const class_providers_1 = require("./class.providers");
+let ClassesModule = class ClassesModule {
+};
+ClassesModule = __decorate([
+ (0, common_1.Module)({
+ controllers: [classes_controller_1.ClassesController],
+ providers: [
+ classes_service_1.ClassesService,
+ classes_repository_1.ClassRepository,
+ ...class_providers_1.classProviders,
+ ],
+ })
+], ClassesModule);
+exports.ClassesModule = ClassesModule;
+//# sourceMappingURL=classes.module.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js.map
new file mode 100644
index 000000000..b2aa87a7a
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"classes.module.js","sourceRoot":"","sources":["../../../src/models/classes/classes.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,6DAAyD;AACzD,6DAAuD;AACvD,uDAAmD;AAa5C,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IARzB,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,sCAAiB,CAAC;QAChC,SAAS,EAAE;YACT,gCAAc;YACd,oCAAe;YACf,GAAG,gCAAc;SAClB;KACF,CAAC;GACW,aAAa,CAAG;AAAhB,sCAAa"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.d.ts
new file mode 100644
index 000000000..4f65f07f6
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.d.ts
@@ -0,0 +1,12 @@
+import { Class } from './entities/class.entity';
+import { ModelStatic } from 'sequelize';
+export declare class ClassRepository {
+ classModel: ModelStatic;
+ constructor(classModel: ModelStatic);
+ findAll(): Promise;
+ findOne(classId: number): Promise;
+ incrementSeats(classId: number): void;
+ decrementSeats(classId: number): void;
+ availableClasses(): Promise;
+ removeOne(classId: number): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js
new file mode 100644
index 000000000..a42d29a51
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js
@@ -0,0 +1,70 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClassRepository = void 0;
+const class_entity_1 = require("./entities/class.entity");
+const common_1 = require("@nestjs/common");
+const sequelize_1 = require("sequelize");
+const student_entity_1 = require("../students/entities/student.entity");
+const constants_1 = require("../../common/constants");
+let ClassRepository = class ClassRepository {
+ constructor(classModel) {
+ this.classModel = classModel;
+ }
+ async findAll() {
+ return this.classModel.findAll({
+ include: [
+ {
+ model: student_entity_1.Student,
+ },
+ ],
+ });
+ }
+ async findOne(classId) {
+ return this.classModel.findByPk(classId);
+ }
+ incrementSeats(classId) {
+ class_entity_1.Class.increment('availableSeats', {
+ by: 1,
+ where: { classId }
+ });
+ }
+ decrementSeats(classId) {
+ class_entity_1.Class.decrement('availableSeats', {
+ by: 1,
+ where: { classId }
+ });
+ }
+ availableClasses() {
+ return this.classModel.findAll({
+ where: {
+ availableSeats: { [sequelize_1.Op.gt]: 0 },
+ },
+ });
+ }
+ removeOne(classId) {
+ return this.classModel.destroy({
+ where: {
+ classId,
+ },
+ });
+ }
+};
+ClassRepository = __decorate([
+ (0, common_1.Injectable)(),
+ __param(0, (0, common_1.Inject)(constants_1.CLASS)),
+ __metadata("design:paramtypes", [Object])
+], ClassRepository);
+exports.ClassRepository = ClassRepository;
+//# sourceMappingURL=classes.repository.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js.map
new file mode 100644
index 000000000..050f04559
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.repository.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"classes.repository.js","sourceRoot":"","sources":["../../../src/models/classes/classes.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0DAAgD;AAGhD,2CAIwB;AAExB,yCAA4C;AAC5C,wEAA8D;AAC9D,sDAA6C;AAGtC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAkC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAEpE,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,wBAAO;iBACf;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,oBAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAChC,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,EAAC,OAAO,EAAC;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,oBAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE;YAChC,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,EAAC,OAAO,EAAC;SACjB,CAAC,CAAA;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE;gBACL,cAAc,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;aAC/B;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE;gBACL,OAAO;aACR;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9CY,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,iBAAK,CAAC,CAAA;;GADf,eAAe,CA8C3B;AA9CY,0CAAe"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.d.ts
new file mode 100644
index 000000000..128b86cd2
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.d.ts
@@ -0,0 +1,12 @@
+import { ClassRepository } from './classes.repository';
+import { Class } from './entities/class.entity';
+export declare class ClassesService {
+ private readonly classRepository;
+ constructor(classRepository: ClassRepository);
+ findAll(): Promise;
+ incrementSeats(classId: number): void;
+ decrementSeats(classId: number): void;
+ findOne(classId: number): Promise;
+ availableClasses(): Promise;
+ removeOne(classId: number): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js
new file mode 100644
index 000000000..bee3d8c80
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js
@@ -0,0 +1,49 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ClassesService = void 0;
+const common_1 = require("@nestjs/common");
+const classes_repository_1 = require("./classes.repository");
+let ClassesService = class ClassesService {
+ constructor(classRepository) {
+ this.classRepository = classRepository;
+ }
+ async findAll() {
+ const classes = await this.classRepository.findAll();
+ if (!classes.length)
+ throw new common_1.NotFoundException('Classes not found');
+ return classes;
+ }
+ incrementSeats(classId) {
+ this.classRepository.incrementSeats(classId);
+ }
+ decrementSeats(classId) {
+ this.classRepository.incrementSeats(classId);
+ }
+ findOne(classId) {
+ return this.classRepository.findOne(classId);
+ }
+ availableClasses() {
+ return this.classRepository.availableClasses();
+ }
+ async removeOne(classId) {
+ const currClass = await this.findOne(classId);
+ if (currClass.availableSeats > 0)
+ throw new Error('Class has assigned students');
+ return this.classRepository.removeOne(classId);
+ }
+};
+ClassesService = __decorate([
+ (0, common_1.Injectable)(),
+ __metadata("design:paramtypes", [classes_repository_1.ClassRepository])
+], ClassesService);
+exports.ClassesService = ClassesService;
+//# sourceMappingURL=classes.service.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js.map
new file mode 100644
index 000000000..078a33fa2
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/classes.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"classes.service.js","sourceRoot":"","sources":["../../../src/models/classes/classes.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAIwB;AAGxB,6DAAuD;AAKhD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,0BAAiB,CAAC,mBAAmB,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AA9BY,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmC,oCAAe;GADlD,cAAc,CA8B1B;AA9BY,wCAAc"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.d.ts
new file mode 100644
index 000000000..09ea19d50
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.d.ts
@@ -0,0 +1,10 @@
+import { Model } from 'sequelize-typescript';
+import { Student } from 'src/models/students/entities/student.entity';
+import { IClass } from '../interfaces/classes.interface';
+export declare class Class extends Model implements IClass {
+ classId: number;
+ className: string;
+ classSeats: number;
+ availableSeats: number;
+ students: Student[];
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js
new file mode 100644
index 000000000..51a01eecf
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js
@@ -0,0 +1,42 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Class = void 0;
+const sequelize_typescript_1 = require("sequelize-typescript");
+const student_entity_1 = require("../../students/entities/student.entity");
+let Class = class Class extends sequelize_typescript_1.Model {
+};
+__decorate([
+ sequelize_typescript_1.PrimaryKey,
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Class.prototype, "classId", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.TEXT }),
+ __metadata("design:type", String)
+], Class.prototype, "className", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Class.prototype, "classSeats", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Class.prototype, "availableSeats", void 0);
+__decorate([
+ (0, sequelize_typescript_1.HasMany)(() => student_entity_1.Student),
+ __metadata("design:type", Array)
+], Class.prototype, "students", void 0);
+Class = __decorate([
+ (0, sequelize_typescript_1.Table)({ tableName: 'Classes', updatedAt: false, createdAt: false })
+], Class);
+exports.Class = Class;
+//# sourceMappingURL=class.entity.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js.map
new file mode 100644
index 000000000..72bc21281
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/entities/class.entity.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"class.entity.js","sourceRoot":"","sources":["../../../../src/models/classes/entities/class.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAOgC;AAChC,2EAAsE;AAK7D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAY;CAgBtC,CAAA;AAfC;IAAC,iCAAU;IACV,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;sCACZ;AAEvB;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,CAAC;;wCACP;AAEzB;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;yCACT;AAE1B;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;6CACL;AAE9B;IAAC,IAAA,8BAAO,EAAC,GAAG,EAAE,CAAC,wBAAO,CAAC;;uCACI;AAfhB,KAAK;IADjB,IAAA,4BAAK,EAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;GACvD,KAAK,CAgBjB;AAhBY,sBAAK"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.d.ts
new file mode 100644
index 000000000..3b10c79e1
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.d.ts
@@ -0,0 +1,6 @@
+export interface IClass {
+ classId: number;
+ className: string;
+ classSeats: number;
+ availableSeats: number;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js
new file mode 100644
index 000000000..909619c35
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=classes.interface.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js.map
new file mode 100644
index 000000000..c160b518a
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/classes/interfaces/classes.interface.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"classes.interface.js","sourceRoot":"","sources":["../../../../src/models/classes/interfaces/classes.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js
new file mode 100644
index 000000000..0ef5c7b19
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js
@@ -0,0 +1,42 @@
+"use strict";
+var __rest = (this && this.__rest) || function (s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.BaseRepositoryORM = void 0;
+const serializers_1 = require("../../common/serializers");
+class BaseRepositoryORM {
+ constructor(module) {
+ this.module = module;
+ }
+ async all(where, relation) {
+ return await this.module.findAll({
+ where: where && (0, serializers_1.serializerWhereOptions)(where),
+ include: relation && (0, serializers_1.serializerRelationOptions)(relation),
+ });
+ }
+ async findBy(where, options = {}, relation) {
+ return await this.module.findAll(Object.assign(Object.assign({}, (0, serializers_1.serializerFindOptions)(options)), { where: (0, serializers_1.serializerWhereOptions)(where), include: relation && (0, serializers_1.serializerRelationOptions)(relation) }));
+ }
+ async findByPk(id, options = {}, relation) {
+ return await this.module.findByPk(id, Object.assign(Object.assign({}, (0, serializers_1.serializerFindOptions)(options)), { include: relation && (0, serializers_1.serializerRelationOptions)(relation) }));
+ }
+ async create(attributes, options = {}) {
+ return await this.module.create(attributes, options);
+ }
+ async update(id, attributes, _a = { where: {} }) {
+ var { where } = _a, options = __rest(_a, ["where"]);
+ const [, modules] = await this.module.update(attributes, Object.assign(Object.assign({}, options), { returning: true, where: Object.assign({ id }, where) }));
+ return modules;
+ }
+}
+exports.BaseRepositoryORM = BaseRepositoryORM;
+//# sourceMappingURL=model.repository-orm.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js.map
new file mode 100644
index 000000000..7682f31e5
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/orm/model.repository-orm.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"model.repository-orm.js","sourceRoot":"","sources":["../../../src/models/orm/model.repository-orm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,0DAIkC;AA0BlC,MAAsB,iBAAiB;IACrC,YAAsB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAEvC,KAAK,CAAC,GAAG,CAId,KAAuB,EACvB,QAA6B;QAE7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI;YAClC,KAAK,EAAE,KAAK,IAAI,IAAA,oCAAsB,EAAI,KAAK,CAAC;YAChD,OAAO,EAAE,QAAQ,IAAI,IAAA,uCAAyB,EAAI,QAAQ,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAIjB,KAAsB,EACtB,UAA0B,EAAE,EAC5B,QAA6B;QAE7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,iCAC3B,IAAA,mCAAqB,EAAC,OAAO,CAAC,KACjC,KAAK,EAAE,IAAA,oCAAsB,EAAI,KAAK,CAAC,EACvC,OAAO,EAAE,QAAQ,IAAI,IAAA,uCAAyB,EAAI,QAAQ,CAAC,IAC3D,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CAInB,EAAmB,EACnB,UAA0B,EAAE,EAC5B,QAA6B;QAE7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAI,EAAE,kCAClC,IAAA,mCAAqB,EAAC,OAAO,CAAC,KACjC,OAAO,EAAE,QAAQ,IAAI,IAAA,uCAAyB,EAAI,QAAQ,CAAC,IAC3D,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,UAAe,EACf,UAAyB,EAAE;QAE3B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,UAAiB,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,EAAO,EACP,UAAsB,EACtB,KAA0C,EAAE,KAAK,EAAE,EAAE,EAAE;YAAvD,EAAE,KAAK,OAAgD,EAA3C,OAAO,cAAnB,SAAqB,CAAF;QAEnB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,UAAU,kCACrD,OAAO,KACV,SAAS,EAAE,IAAI,EACf,KAAK,kBAAI,EAAE,IAAK,KAAK,KACrB,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CAEF;AAjED,8CAiEC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.d.ts
new file mode 100644
index 000000000..02616c273
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.d.ts
@@ -0,0 +1,12 @@
+import { Model } from 'sequelize-typescript';
+import { Class } from 'src/models/classes/entities/class.entity';
+import { IStudent } from '../interfaces/student.interface';
+export declare class Student extends Model implements IStudent {
+ tz: number;
+ firstName: string;
+ lastName: string;
+ profession: string;
+ age: number;
+ classId: number;
+ Classes: Class[];
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js
new file mode 100644
index 000000000..c7bb78eb4
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js
@@ -0,0 +1,51 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Student = void 0;
+const sequelize_typescript_1 = require("sequelize-typescript");
+const class_entity_1 = require("../../classes/entities/class.entity");
+let Student = class Student extends sequelize_typescript_1.Model {
+};
+__decorate([
+ sequelize_typescript_1.PrimaryKey,
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Student.prototype, "tz", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.TEXT }),
+ __metadata("design:type", String)
+], Student.prototype, "firstName", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.TEXT }),
+ __metadata("design:type", String)
+], Student.prototype, "lastName", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.TEXT }),
+ __metadata("design:type", String)
+], Student.prototype, "profession", void 0);
+__decorate([
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Student.prototype, "age", void 0);
+__decorate([
+ (0, sequelize_typescript_1.ForeignKey)(() => class_entity_1.Class),
+ (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.INTEGER }),
+ __metadata("design:type", Number)
+], Student.prototype, "classId", void 0);
+__decorate([
+ (0, sequelize_typescript_1.BelongsTo)(() => class_entity_1.Class),
+ __metadata("design:type", Array)
+], Student.prototype, "Classes", void 0);
+Student = __decorate([
+ (0, sequelize_typescript_1.Table)({ tableName: 'Students', updatedAt: false, createdAt: false })
+], Student);
+exports.Student = Student;
+//# sourceMappingURL=student.entity.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js.map
new file mode 100644
index 000000000..471c4b162
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/entities/student.entity.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"student.entity.js","sourceRoot":"","sources":["../../../../src/models/students/entities/student.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAQ8B;AAC9B,sEAAiE;AAI1D,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,4BAAc;CAuB1C,CAAA;AAtBC;IAAC,iCAAU;IACV,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;mCACjB;AAElB;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,CAAC;;0CACP;AAEzB;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,CAAC;;yCACR;AAExB;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,IAAI,EAAE,CAAC;;2CACN;AAE1B;IAAC,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;oCAChB;AAEnB;IAAC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,oBAAK,CAAC;IACvB,IAAA,6BAAM,EAAC,EAAE,IAAI,EAAE,+BAAQ,CAAC,OAAO,EAAE,CAAC;;wCACZ;AAEvB;IAAC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,oBAAK,CAAC;;wCACN;AAtBN,OAAO;IADnB,IAAA,4BAAK,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;GACxD,OAAO,CAuBnB;AAvBY,0BAAO"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.d.ts
new file mode 100644
index 000000000..2f0f55e7a
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.d.ts
@@ -0,0 +1,8 @@
+export interface IStudent {
+ tz: number;
+ firstName: string;
+ lastName: string;
+ age: number;
+ profession: string;
+ classId: number;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js
new file mode 100644
index 000000000..0d29abe09
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=student.interface.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js.map
new file mode 100644
index 000000000..af9c4e5a7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/interfaces/student.interface.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"student.interface.js","sourceRoot":"","sources":["../../../../src/models/students/interfaces/student.interface.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.d.ts
new file mode 100644
index 000000000..7ea4e737d
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.d.ts
@@ -0,0 +1,9 @@
+import { StudentsService } from './students.service';
+export declare class StudentsController {
+ private readonly studentsService;
+ constructor(studentsService: StudentsService);
+ findAll(): Promise;
+ unAssignStudent(id: string, classId: string): Promise<[affectedCount: number]>;
+ assignStudent(id: string, classId: string): Promise<[affectedCount: number]>;
+ removeOne(id: string): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js
new file mode 100644
index 000000000..1ea5c570f
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js
@@ -0,0 +1,69 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StudentsController = void 0;
+const common_1 = require("@nestjs/common");
+const students_service_1 = require("./students.service");
+let StudentsController = class StudentsController {
+ constructor(studentsService) {
+ this.studentsService = studentsService;
+ }
+ findAll() {
+ return this.studentsService.findAll();
+ }
+ unAssignStudent(id, classId) {
+ return this.studentsService.unAssignStudent(+id, +classId);
+ }
+ assignStudent(id, classId) {
+ return this.studentsService.assignStudent(+id, +classId);
+ }
+ removeOne(id) {
+ return this.studentsService.removeOne(+id);
+ }
+};
+__decorate([
+ (0, common_1.Get)('/all'),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", []),
+ __metadata("design:returntype", void 0)
+], StudentsController.prototype, "findAll", null);
+__decorate([
+ (0, common_1.Post)('/tz/:id/classId/:classId'),
+ __param(0, (0, common_1.Param)('id')),
+ __param(1, (0, common_1.Param)('classId')),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", [String, String]),
+ __metadata("design:returntype", void 0)
+], StudentsController.prototype, "unAssignStudent", null);
+__decorate([
+ (0, common_1.Post)('/tz/:id/classId/:classId'),
+ __param(0, (0, common_1.Param)('id')),
+ __param(1, (0, common_1.Param)('classId')),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", [String, String]),
+ __metadata("design:returntype", void 0)
+], StudentsController.prototype, "assignStudent", null);
+__decorate([
+ (0, common_1.Delete)(':id'),
+ __param(0, (0, common_1.Param)('id')),
+ __metadata("design:type", Function),
+ __metadata("design:paramtypes", [String]),
+ __metadata("design:returntype", void 0)
+], StudentsController.prototype, "removeOne", null);
+StudentsController = __decorate([
+ (0, common_1.Controller)('students'),
+ __metadata("design:paramtypes", [students_service_1.StudentsService])
+], StudentsController);
+exports.StudentsController = StudentsController;
+//# sourceMappingURL=students.controller.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js.map
new file mode 100644
index 000000000..281107dd7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"students.controller.js","sourceRoot":"","sources":["../../../src/models/students/students.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAsE;AACtE,yDAAqD;AAG9C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAGjE,OAAO;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;IAGD,eAAe,CAAc,EAAU,EAAoB,OAAe;QACxE,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAE;IAC9D,CAAC;IAGD,aAAa,CAAc,EAAS,EAAoB,OAAe;QACrE,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IAC1D,CAAC;IAGF,SAAS,CAAc,EAAS;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;CACD,CAAA;AAnBC;IAAC,IAAA,YAAG,EAAC,MAAM,CAAC;;;;iDAGX;AAED;IAAC,IAAA,aAAI,EAAC,0BAA0B,CAAC;IAChB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;;;;yDAEzD;AAED;IAAC,IAAA,aAAI,EAAC,0BAA0B,CAAC;IAClB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAa,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;;;;uDAEtD;AAED;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACJ,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;mDAErB;AArBW,kBAAkB;IAD9B,IAAA,mBAAU,EAAC,UAAU,CAAC;qCAEyB,kCAAe;GADlD,kBAAkB,CAsB9B;AAtBY,gDAAkB"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.d.ts
new file mode 100644
index 000000000..baf166e6a
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.d.ts
@@ -0,0 +1,2 @@
+export declare class StudentsModule {
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js
new file mode 100644
index 000000000..df575f4c5
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js
@@ -0,0 +1,30 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StudentsModule = void 0;
+const common_1 = require("@nestjs/common");
+const students_service_1 = require("./students.service");
+const students_controller_1 = require("./students.controller");
+const students_repository_1 = require("./students.repository");
+const students_providers_1 = require("./students.providers");
+const classes_service_1 = require("../classes/classes.service");
+const classes_repository_1 = require("../classes/classes.repository");
+const class_providers_1 = require("../classes/class.providers");
+let StudentsModule = class StudentsModule {
+};
+StudentsModule = __decorate([
+ (0, common_1.Module)({
+ controllers: [students_controller_1.StudentsController],
+ providers: [students_service_1.StudentsService, students_repository_1.StudentRepository, ...students_providers_1.studentProviders,
+ classes_service_1.ClassesService,
+ classes_repository_1.ClassRepository,
+ ...class_providers_1.classProviders,],
+ })
+], StudentsModule);
+exports.StudentsModule = StudentsModule;
+//# sourceMappingURL=students.module.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js.map
new file mode 100644
index 000000000..ce0f66f69
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"students.module.js","sourceRoot":"","sources":["../../../src/models/students/students.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAAqD;AACrD,+DAA2D;AAC3D,+DAA0D;AAC1D,6DAAwD;AACxD,gEAA4D;AAC5D,sEAAgE;AAChE,gEAA4D;AASrD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAP1B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,wCAAkB,CAAC;QACjC,SAAS,EAAE,CAAC,kCAAe,EAAE,uCAAiB,EAAE,GAAG,qCAAgB;YACjE,gCAAc;YACd,oCAAe;YACf,GAAG,gCAAc,EAAE;KACtB,CAAC;GACW,cAAc,CAAG;AAAjB,wCAAc"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.d.ts
new file mode 100644
index 000000000..ade62abf1
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.d.ts
@@ -0,0 +1,9 @@
+import { Student } from './entities/student.entity';
+import { Class } from '../classes/entities/class.entity';
+export declare const studentProviders: ({
+ provide: string;
+ useValue: typeof Student;
+} | {
+ provide: string;
+ useValue: typeof Class;
+})[];
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js
new file mode 100644
index 000000000..64624d064
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.studentProviders = void 0;
+const student_entity_1 = require("./entities/student.entity");
+const constants_1 = require("../../common/constants");
+const class_entity_1 = require("../classes/entities/class.entity");
+exports.studentProviders = [
+ {
+ provide: constants_1.STUDENT,
+ useValue: student_entity_1.Student,
+ },
+ {
+ provide: constants_1.CLASS,
+ useValue: class_entity_1.Class,
+ },
+];
+//# sourceMappingURL=students.providers.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js.map
new file mode 100644
index 000000000..b03e4cd89
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"students.providers.js","sourceRoot":"","sources":["../../../src/models/students/students.providers.ts"],"names":[],"mappings":";;;AACA,8DAAoD;AAGpD,sDAAyD;AACzD,mEAAyD;AAE5C,QAAA,gBAAgB,GAAG;IAC9B;QACE,OAAO,EAAE,mBAAO;QAChB,QAAQ,EAAE,wBAAO;KAClB;IACD;QACE,OAAO,EAAE,iBAAK;QACd,QAAQ,EAAE,oBAAK;KAChB;CACF,CAAC"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.d.ts
new file mode 100644
index 000000000..46e313aeb
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.d.ts
@@ -0,0 +1,11 @@
+import { ModelStatic } from 'sequelize';
+import { Student } from '../students/entities/student.entity';
+export declare class StudentRepository {
+ studentModel: ModelStatic;
+ constructor(studentModel: ModelStatic);
+ findAll(): Promise;
+ getAssignedStudents(classId: number): Promise;
+ assignStudent(tz: number, classId: number): Promise<[affectedCount: number]>;
+ unAssignStudent(tz: number, classId: number): Promise<[affectedCount: number]>;
+ removeOne(tz: number): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js
new file mode 100644
index 000000000..473887b50
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js
@@ -0,0 +1,55 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StudentRepository = void 0;
+const common_1 = require("@nestjs/common");
+const constants_1 = require("../../common/constants");
+const class_entity_1 = require("../classes/entities/class.entity");
+let StudentRepository = class StudentRepository {
+ constructor(studentModel) {
+ this.studentModel = studentModel;
+ }
+ async findAll() {
+ return this.studentModel.findAll({
+ include: [
+ {
+ model: class_entity_1.Class,
+ },
+ ],
+ });
+ }
+ getAssignedStudents(classId) {
+ return this.studentModel.findAll({ where: { classId } });
+ }
+ assignStudent(tz, classId) {
+ return this.studentModel.update({ classId }, { where: { tz } });
+ }
+ unAssignStudent(tz, classId) {
+ return this.studentModel.update({ classId: null }, { where: { tz } });
+ }
+ removeOne(tz) {
+ return this.studentModel.destroy({
+ where: {
+ tz,
+ },
+ });
+ }
+};
+StudentRepository = __decorate([
+ (0, common_1.Injectable)(),
+ __param(0, (0, common_1.Inject)(constants_1.STUDENT)),
+ __metadata("design:paramtypes", [Object])
+], StudentRepository);
+exports.StudentRepository = StudentRepository;
+//# sourceMappingURL=students.repository.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js.map
new file mode 100644
index 000000000..0a366f3b7
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.repository.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"students.repository.js","sourceRoot":"","sources":["../../../src/models/students/students.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,sDAA+C;AAC/C,mEAAyD;AAIlD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAAoC,YAAkC;QAAlC,iBAAY,GAAZ,YAAY,CAAsB;IAAG,CAAC;IAE1E,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,oBAAK;iBACb;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,OAAe;QACzC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE;gBACL,EAAE;aACH;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAhCY,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,mBAAO,CAAC,CAAA;;GADjB,iBAAiB,CAgC7B;AAhCY,8CAAiB"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.d.ts
new file mode 100644
index 000000000..63bd0376e
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.d.ts
@@ -0,0 +1,13 @@
+import { ClassesService } from '../classes/classes.service';
+import { Student } from './entities/student.entity';
+import { StudentRepository } from './students.repository';
+export declare class StudentsService {
+ private readonly studentRepository;
+ private readonly classService;
+ constructor(studentRepository: StudentRepository, classService: ClassesService);
+ findAll(): Promise;
+ unAssignStudent(id: number, classId: number): Promise<[affectedCount: number]>;
+ getAssignedStudents(classId: number): Promise;
+ assignStudent(id: number, classId: number): Promise<[affectedCount: number]>;
+ removeOne(id: number): Promise;
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js
new file mode 100644
index 000000000..28c11967c
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js
@@ -0,0 +1,47 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.StudentsService = void 0;
+const common_1 = require("@nestjs/common");
+const classes_service_1 = require("../classes/classes.service");
+const students_repository_1 = require("./students.repository");
+let StudentsService = class StudentsService {
+ constructor(studentRepository, classService) {
+ this.studentRepository = studentRepository;
+ this.classService = classService;
+ }
+ async findAll() {
+ const students = await this.studentRepository.findAll();
+ if (!students.length)
+ throw new common_1.NotFoundException('Classes not found');
+ return students;
+ }
+ unAssignStudent(id, classId) {
+ return this.studentRepository.unAssignStudent(id, classId);
+ }
+ getAssignedStudents(classId) {
+ return this.studentRepository.getAssignedStudents(classId);
+ }
+ assignStudent(id, classId) {
+ this.classService.decrementSeats(classId);
+ return this.studentRepository.assignStudent(id, classId);
+ }
+ removeOne(id) {
+ return this.studentRepository.removeOne(id);
+ }
+};
+StudentsService = __decorate([
+ (0, common_1.Injectable)(),
+ __metadata("design:paramtypes", [students_repository_1.StudentRepository,
+ classes_service_1.ClassesService])
+], StudentsService);
+exports.StudentsService = StudentsService;
+//# sourceMappingURL=students.service.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js.map
new file mode 100644
index 000000000..064a3c8ce
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/models/students/students.service.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"students.service.js","sourceRoot":"","sources":["../../../src/models/students/students.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA+D;AAC/D,gEAA4D;AAE5D,+DAA0D;AAGnD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,iBAAoC,EACpC,YAA4B;QAD5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,iBAAY,GAAZ,YAAY,CAAgB;IAC5C,CAAC;IAEJ,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAc,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,IAAI,0BAAiB,CAAC,mBAAmB,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,OAAe;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,OAAe;QACvC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AA5BY,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAG2B,uCAAiB;QACtB,gCAAc;GAHpC,eAAe,CA4B3B;AA5BY,0CAAe"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.d.ts
new file mode 100644
index 000000000..3d07f8b5b
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.d.ts
@@ -0,0 +1 @@
+export * from "./postgres/provider.module";
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js
new file mode 100644
index 000000000..da54024fe
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js
@@ -0,0 +1,18 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+__exportStar(require("./postgres/provider.module"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js.map
new file mode 100644
index 000000000..7e15c9997
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.d.ts
new file mode 100644
index 000000000..d6fdcd751
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.d.ts
@@ -0,0 +1,2 @@
+export declare class DatabaseModule {
+}
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js
new file mode 100644
index 000000000..6a7fb8125
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js
@@ -0,0 +1,21 @@
+"use strict";
+var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DatabaseModule = void 0;
+const common_1 = require("@nestjs/common");
+const provider_providers_1 = require("./provider.providers");
+let DatabaseModule = class DatabaseModule {
+};
+DatabaseModule = __decorate([
+ (0, common_1.Module)({
+ providers: [...provider_providers_1.databaseProviders],
+ exports: [...provider_providers_1.databaseProviders]
+ })
+], DatabaseModule);
+exports.DatabaseModule = DatabaseModule;
+//# sourceMappingURL=provider.module.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js.map
new file mode 100644
index 000000000..40b792797
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.module.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"provider.module.js","sourceRoot":"","sources":["../../../../src/providers/database/postgres/provider.module.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAAwC;AAGxC,6DAAyD;AAMlD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAJ1B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,GAAG,sCAAiB,CAAC;QACjC,OAAO,EAAE,CAAC,GAAG,sCAAiB,CAAC;KAChC,CAAC;GACW,cAAc,CAAG;AAAjB,wCAAc"}
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.d.ts b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.d.ts
new file mode 100644
index 000000000..a65bc6535
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.d.ts
@@ -0,0 +1,5 @@
+import { Sequelize } from 'sequelize-typescript';
+export declare const databaseProviders: {
+ provide: string;
+ useFactory: () => Sequelize;
+}[];
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js
new file mode 100644
index 000000000..2bbad9b7c
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.databaseProviders = void 0;
+const sequelize_typescript_1 = require("sequelize-typescript");
+const class_entity_1 = require("../../../models/classes/entities/class.entity");
+const student_entity_1 = require("../../../models/students/entities/student.entity");
+require('dotenv').config();
+exports.databaseProviders = [
+ {
+ provide: 'SEQUELIZE',
+ useFactory: () => {
+ const sequelize = new sequelize_typescript_1.Sequelize({
+ database: process.env.DB_DATABASE,
+ host: process.env.DB_HOST,
+ port: 5432,
+ schema: 'hafifa',
+ username: process.env.DB_USERNAME,
+ password: process.env.DB_PASSWORD,
+ dialect: 'postgres',
+ ssl: true,
+ dialectOptions: {
+ ssl: {
+ require: true,
+ },
+ },
+ models: [class_entity_1.Class, student_entity_1.Student],
+ });
+ sequelize.addModels([class_entity_1.Class, student_entity_1.Student]);
+ return sequelize;
+ },
+ },
+];
+//# sourceMappingURL=provider.providers.js.map
\ No newline at end of file
diff --git a/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js.map b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js.map
new file mode 100644
index 000000000..980762f51
--- /dev/null
+++ b/02-TypeScript/18-personalProject/KSENIYA-CLASSROOM/classroom-server/dist/providers/database/postgres/provider.providers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"provider.providers.js","sourceRoot":"","sources":["../../../../src/providers/database/postgres/provider.providers.ts"],"names":[],"mappings":";;;AACA,+DAAiD;AACjD,gFAAiE;AACjE,qFAAsE;AAEtE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAEb,QAAA,iBAAiB,GAAG;IAC/B;QACE,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,SAAS,GAAG,IAAI,gCAAS,CAAC;gBAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;gBACjC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;gBACzB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;gBACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;gBACjC,OAAO,EAAE,UAAU;gBACnB,GAAG,EAAE,IAAI;gBACT,cAAc,EAAE;oBACd,GAAG,EAAE;wBACH,OAAO,EAAE,IAAI;qBACd;iBACF;gBACD,MAAM,EAAE,CAAC,oBAAK,EAAE,wBAAO,CAAC;aACzB,CAAC,CAAC;YAEH,SAAS,CAAC,SAAS,CAAC,CAAC,oBAAK,EAAE,wBAAO,CAAC,CAAC,CAAC;YAEtC,OAAO,SAAS,CAAC;QACnB,CAAC;KACF;CACF,CAAC"}
\ No newline at end of file
diff --git a/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.css b/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.css
new file mode 100644
index 000000000..1df94fa2d
--- /dev/null
+++ b/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.css
@@ -0,0 +1,23 @@
+.balloon-container {
+ animation: balloonAnimation linear;
+ animation-duration: 2s;
+ bottom: -30%;
+ position: absolute;
+ cursor: pointer;
+ overflow: hidden;
+ width: 200px;
+ background-color: unset;
+}
+.balloon-container__balloon {
+ width: inherit;
+ object-fit: contain;
+}
+
+@keyframes balloonAnimation {
+ from {
+ bottom: -20%;
+ }
+ to {
+ bottom: 100%;
+ }
+}
\ No newline at end of file
diff --git a/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.js b/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.js
new file mode 100644
index 000000000..619b49446
--- /dev/null
+++ b/04-React/04-react-with-server/followup/Orel/client/src/components/Balloon/dist/Balloon.js
@@ -0,0 +1,113 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+exports.__esModule = true;
+var react_1 = require("react");
+require("./Balloon.scss");
+var axios_1 = require("axios");
+var Balloon = function (_a) {
+ var balloons = _a.balloons, setBalloons = _a.setBalloons, speed = _a.speed;
+ var _b = react_1.useState(null), randomBall = _b[0], setRandomBall = _b[1];
+ var _c = react_1.useState({
+ left: '50%',
+ animationDuration: speed + "s"
+ }), style = _c[0], setStyle = _c[1];
+ react_1.useEffect(function () {
+ try {
+ var newBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.floor(Math.random() * newBalloon.length);
+ setRandomBall(newBalloon[randomIndex]);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }, [balloons]);
+ function handleClickBalloon() {
+ try {
+ if (!randomBall)
+ throw new Error('No random balloon found');
+ var copyBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.ceil((Math.random() * 80) - 20) + 20;
+ var updateBalloons = copyBalloon.filter(function (b) { return b._id !== (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id); });
+ setRandomBall(null);
+ setStyle({
+ left: randomIndex + "%",
+ animationDuration: speed + "s"
+ });
+ setBalloons(updateBalloons);
+ if (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id)
+ getScoreAndUpdateByOne(randomBall === null || randomBall === void 0 ? void 0 : randomBall._id);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }
+ function getScoreAndUpdateByOne(balloonId) {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].post('api/balloons//get-score-by-id-and-update-by-one', { id: balloonId })];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found dataJs");
+ console.log(data);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (randomBall &&
+ react_1["default"].createElement("div", { style: style, className: "balloon-container" },
+ react_1["default"].createElement("img", { width: "150px", src: randomBall.src, alt: randomBall.name, onClick: handleClickBalloon, className: "container-balloon__balloon" })));
+};
+exports["default"] = Balloon;
diff --git a/04-React/04-react-with-server/followup/Orel/client/src/components/Navbar/dist/Navbar.js b/04-React/04-react-with-server/followup/Orel/client/src/components/Navbar/dist/Navbar.js
new file mode 100644
index 000000000..46ac0b308
--- /dev/null
+++ b/04-React/04-react-with-server/followup/Orel/client/src/components/Navbar/dist/Navbar.js
@@ -0,0 +1,83 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+var axios_1 = require("axios");
+require("./Navbar.scss");
+var Navbar = function () {
+ function handleClickResetGame() {
+ try {
+ location.reload();
+ }
+ catch (error) {
+ console.log(error);
+ }
+ }
+ function handleResetScore() {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, message, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get("/api/balloons/reset-scores")];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found Data DB");
+ message = data.message;
+ console.log(message);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (React.createElement("nav", { className: 'navbar-container' },
+ React.createElement("ul", { className: 'navbar-container__nav' },
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn' }, "Start Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleClickResetGame }, "Reset Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleResetScore }, "Reset Score")))));
+};
+exports["default"] = Navbar;
diff --git a/04-React/04-react-with-server/followup/Orel/client/src/components/Score/dist/Score.js b/04-React/04-react-with-server/followup/Orel/client/src/components/Score/dist/Score.js
new file mode 100644
index 000000000..52e2a605e
--- /dev/null
+++ b/04-React/04-react-with-server/followup/Orel/client/src/components/Score/dist/Score.js
@@ -0,0 +1,11 @@
+// import axios from 'axios'
+// import {useEffect , useState} from 'react'
+// const Score = () => {
+// const [score , setScore] = useState(Number)
+// return (
+//
+//
Score:{score}
+//
+// )
+// }
+// export default Score
diff --git a/04-React/04-react-with-server/followup/Orel/client/src/dist/App.js b/04-React/04-react-with-server/followup/Orel/client/src/dist/App.js
new file mode 100644
index 000000000..3fe46d9c3
--- /dev/null
+++ b/04-React/04-react-with-server/followup/Orel/client/src/dist/App.js
@@ -0,0 +1,76 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+require("./App.scss");
+var axios_1 = require("axios");
+var react_1 = require("react");
+var Balloon_1 = require("./components/Balloon/Balloon"); // interface Ballon
+var Navbar_1 = require("./components/Navbar/Navbar");
+// import GameBoard from './components/GameBoard/GameBoard'
+function App() {
+ var _this = this;
+ var _a = react_1.useState([]), balloons = _a[0], setBalloons = _a[1];
+ react_1.useEffect(function () {
+ (function () { return __awaiter(_this, void 0, void 0, function () {
+ var data, balloonsDB, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get('/api/balloons/get-balloons')];
+ case 1:
+ data = (_a.sent()).data;
+ balloonsDB = data.balloons;
+ if (!balloonsDB)
+ throw new Error("no found balloons in data DB");
+ setBalloons(balloonsDB);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ }); })();
+ }, []);
+ return (React.createElement("section", { className: 'main-container' },
+ React.createElement(Navbar_1["default"], null),
+ React.createElement(Balloon_1["default"], { balloons: balloons, setBalloons: setBalloons, speed: 1.5 })));
+}
+exports["default"] = App;
diff --git a/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.css b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.css
new file mode 100644
index 000000000..1df94fa2d
--- /dev/null
+++ b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.css
@@ -0,0 +1,23 @@
+.balloon-container {
+ animation: balloonAnimation linear;
+ animation-duration: 2s;
+ bottom: -30%;
+ position: absolute;
+ cursor: pointer;
+ overflow: hidden;
+ width: 200px;
+ background-color: unset;
+}
+.balloon-container__balloon {
+ width: inherit;
+ object-fit: contain;
+}
+
+@keyframes balloonAnimation {
+ from {
+ bottom: -20%;
+ }
+ to {
+ bottom: 100%;
+ }
+}
\ No newline at end of file
diff --git a/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.js b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.js
new file mode 100644
index 000000000..619b49446
--- /dev/null
+++ b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Balloon/dist/Balloon.js
@@ -0,0 +1,113 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+exports.__esModule = true;
+var react_1 = require("react");
+require("./Balloon.scss");
+var axios_1 = require("axios");
+var Balloon = function (_a) {
+ var balloons = _a.balloons, setBalloons = _a.setBalloons, speed = _a.speed;
+ var _b = react_1.useState(null), randomBall = _b[0], setRandomBall = _b[1];
+ var _c = react_1.useState({
+ left: '50%',
+ animationDuration: speed + "s"
+ }), style = _c[0], setStyle = _c[1];
+ react_1.useEffect(function () {
+ try {
+ var newBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.floor(Math.random() * newBalloon.length);
+ setRandomBall(newBalloon[randomIndex]);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }, [balloons]);
+ function handleClickBalloon() {
+ try {
+ if (!randomBall)
+ throw new Error('No random balloon found');
+ var copyBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.ceil((Math.random() * 80) - 20) + 20;
+ var updateBalloons = copyBalloon.filter(function (b) { return b._id !== (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id); });
+ setRandomBall(null);
+ setStyle({
+ left: randomIndex + "%",
+ animationDuration: speed + "s"
+ });
+ setBalloons(updateBalloons);
+ if (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id)
+ getScoreAndUpdateByOne(randomBall === null || randomBall === void 0 ? void 0 : randomBall._id);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }
+ function getScoreAndUpdateByOne(balloonId) {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].post('api/balloons//get-score-by-id-and-update-by-one', { id: balloonId })];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found dataJs");
+ console.log(data);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (randomBall &&
+ react_1["default"].createElement("div", { style: style, className: "balloon-container" },
+ react_1["default"].createElement("img", { width: "150px", src: randomBall.src, alt: randomBall.name, onClick: handleClickBalloon, className: "container-balloon__balloon" })));
+};
+exports["default"] = Balloon;
diff --git a/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Navbar/dist/Navbar.js b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Navbar/dist/Navbar.js
new file mode 100644
index 000000000..46ac0b308
--- /dev/null
+++ b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Navbar/dist/Navbar.js
@@ -0,0 +1,83 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+var axios_1 = require("axios");
+require("./Navbar.scss");
+var Navbar = function () {
+ function handleClickResetGame() {
+ try {
+ location.reload();
+ }
+ catch (error) {
+ console.log(error);
+ }
+ }
+ function handleResetScore() {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, message, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get("/api/balloons/reset-scores")];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found Data DB");
+ message = data.message;
+ console.log(message);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (React.createElement("nav", { className: 'navbar-container' },
+ React.createElement("ul", { className: 'navbar-container__nav' },
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn' }, "Start Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleClickResetGame }, "Reset Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleResetScore }, "Reset Score")))));
+};
+exports["default"] = Navbar;
diff --git a/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Score/dist/Score.js b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Score/dist/Score.js
new file mode 100644
index 000000000..52e2a605e
--- /dev/null
+++ b/04-React/04-react-with-server/home-puzzles/Orel/client/src/components/Score/dist/Score.js
@@ -0,0 +1,11 @@
+// import axios from 'axios'
+// import {useEffect , useState} from 'react'
+// const Score = () => {
+// const [score , setScore] = useState(Number)
+// return (
+//
+//
Score:{score}
+//
+// )
+// }
+// export default Score
diff --git a/04-React/04-react-with-server/home-puzzles/Orel/client/src/dist/App.js b/04-React/04-react-with-server/home-puzzles/Orel/client/src/dist/App.js
new file mode 100644
index 000000000..3fe46d9c3
--- /dev/null
+++ b/04-React/04-react-with-server/home-puzzles/Orel/client/src/dist/App.js
@@ -0,0 +1,76 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+require("./App.scss");
+var axios_1 = require("axios");
+var react_1 = require("react");
+var Balloon_1 = require("./components/Balloon/Balloon"); // interface Ballon
+var Navbar_1 = require("./components/Navbar/Navbar");
+// import GameBoard from './components/GameBoard/GameBoard'
+function App() {
+ var _this = this;
+ var _a = react_1.useState([]), balloons = _a[0], setBalloons = _a[1];
+ react_1.useEffect(function () {
+ (function () { return __awaiter(_this, void 0, void 0, function () {
+ var data, balloonsDB, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get('/api/balloons/get-balloons')];
+ case 1:
+ data = (_a.sent()).data;
+ balloonsDB = data.balloons;
+ if (!balloonsDB)
+ throw new Error("no found balloons in data DB");
+ setBalloons(balloonsDB);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ }); })();
+ }, []);
+ return (React.createElement("section", { className: 'main-container' },
+ React.createElement(Navbar_1["default"], null),
+ React.createElement(Balloon_1["default"], { balloons: balloons, setBalloons: setBalloons, speed: 1.5 })));
+}
+exports["default"] = App;
diff --git a/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.css b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.css
new file mode 100644
index 000000000..1df94fa2d
--- /dev/null
+++ b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.css
@@ -0,0 +1,23 @@
+.balloon-container {
+ animation: balloonAnimation linear;
+ animation-duration: 2s;
+ bottom: -30%;
+ position: absolute;
+ cursor: pointer;
+ overflow: hidden;
+ width: 200px;
+ background-color: unset;
+}
+.balloon-container__balloon {
+ width: inherit;
+ object-fit: contain;
+}
+
+@keyframes balloonAnimation {
+ from {
+ bottom: -20%;
+ }
+ to {
+ bottom: 100%;
+ }
+}
\ No newline at end of file
diff --git a/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.js b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.js
new file mode 100644
index 000000000..619b49446
--- /dev/null
+++ b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Balloon/dist/Balloon.js
@@ -0,0 +1,113 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+exports.__esModule = true;
+var react_1 = require("react");
+require("./Balloon.scss");
+var axios_1 = require("axios");
+var Balloon = function (_a) {
+ var balloons = _a.balloons, setBalloons = _a.setBalloons, speed = _a.speed;
+ var _b = react_1.useState(null), randomBall = _b[0], setRandomBall = _b[1];
+ var _c = react_1.useState({
+ left: '50%',
+ animationDuration: speed + "s"
+ }), style = _c[0], setStyle = _c[1];
+ react_1.useEffect(function () {
+ try {
+ var newBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.floor(Math.random() * newBalloon.length);
+ setRandomBall(newBalloon[randomIndex]);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }, [balloons]);
+ function handleClickBalloon() {
+ try {
+ if (!randomBall)
+ throw new Error('No random balloon found');
+ var copyBalloon = __spreadArrays(balloons);
+ var randomIndex = Math.ceil((Math.random() * 80) - 20) + 20;
+ var updateBalloons = copyBalloon.filter(function (b) { return b._id !== (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id); });
+ setRandomBall(null);
+ setStyle({
+ left: randomIndex + "%",
+ animationDuration: speed + "s"
+ });
+ setBalloons(updateBalloons);
+ if (randomBall === null || randomBall === void 0 ? void 0 : randomBall._id)
+ getScoreAndUpdateByOne(randomBall === null || randomBall === void 0 ? void 0 : randomBall._id);
+ }
+ catch (error) {
+ console.error(error);
+ }
+ }
+ function getScoreAndUpdateByOne(balloonId) {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].post('api/balloons//get-score-by-id-and-update-by-one', { id: balloonId })];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found dataJs");
+ console.log(data);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (randomBall &&
+ react_1["default"].createElement("div", { style: style, className: "balloon-container" },
+ react_1["default"].createElement("img", { width: "150px", src: randomBall.src, alt: randomBall.name, onClick: handleClickBalloon, className: "container-balloon__balloon" })));
+};
+exports["default"] = Balloon;
diff --git a/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Navbar/dist/Navbar.js b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Navbar/dist/Navbar.js
new file mode 100644
index 000000000..46ac0b308
--- /dev/null
+++ b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Navbar/dist/Navbar.js
@@ -0,0 +1,83 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+var axios_1 = require("axios");
+require("./Navbar.scss");
+var Navbar = function () {
+ function handleClickResetGame() {
+ try {
+ location.reload();
+ }
+ catch (error) {
+ console.log(error);
+ }
+ }
+ function handleResetScore() {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, message, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get("/api/balloons/reset-scores")];
+ case 1:
+ data = (_a.sent()).data;
+ if (!data)
+ throw new Error("no found Data DB");
+ message = data.message;
+ console.log(message);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ });
+ }
+ return (React.createElement("nav", { className: 'navbar-container' },
+ React.createElement("ul", { className: 'navbar-container__nav' },
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn' }, "Start Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleClickResetGame }, "Reset Game")),
+ React.createElement("li", { className: 'navbar-container__list' },
+ React.createElement("button", { className: 'navbar-container__btn', onClick: handleResetScore }, "Reset Score")))));
+};
+exports["default"] = Navbar;
diff --git a/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Score/dist/Score.js b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Score/dist/Score.js
new file mode 100644
index 000000000..52e2a605e
--- /dev/null
+++ b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/components/Score/dist/Score.js
@@ -0,0 +1,11 @@
+// import axios from 'axios'
+// import {useEffect , useState} from 'react'
+// const Score = () => {
+// const [score , setScore] = useState(Number)
+// return (
+//
+//
Score:{score}
+//
+// )
+// }
+// export default Score
diff --git a/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/dist/App.js b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/dist/App.js
new file mode 100644
index 000000000..3fe46d9c3
--- /dev/null
+++ b/04-React/05-lifiting-state-up/Home-puzzles/Orel/PopBallonWithScore/client/src/dist/App.js
@@ -0,0 +1,76 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+exports.__esModule = true;
+require("./App.scss");
+var axios_1 = require("axios");
+var react_1 = require("react");
+var Balloon_1 = require("./components/Balloon/Balloon"); // interface Ballon
+var Navbar_1 = require("./components/Navbar/Navbar");
+// import GameBoard from './components/GameBoard/GameBoard'
+function App() {
+ var _this = this;
+ var _a = react_1.useState([]), balloons = _a[0], setBalloons = _a[1];
+ react_1.useEffect(function () {
+ (function () { return __awaiter(_this, void 0, void 0, function () {
+ var data, balloonsDB, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, axios_1["default"].get('/api/balloons/get-balloons')];
+ case 1:
+ data = (_a.sent()).data;
+ balloonsDB = data.balloons;
+ if (!balloonsDB)
+ throw new Error("no found balloons in data DB");
+ setBalloons(balloonsDB);
+ return [3 /*break*/, 3];
+ case 2:
+ error_1 = _a.sent();
+ console.error(error_1);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+ }); })();
+ }, []);
+ return (React.createElement("section", { className: 'main-container' },
+ React.createElement(Navbar_1["default"], null),
+ React.createElement(Balloon_1["default"], { balloons: balloons, setBalloons: setBalloons, speed: 1.5 })));
+}
+exports["default"] = App;
diff --git a/temp/index.html b/temp/index.html
new file mode 100644
index 000000000..ea519e328
--- /dev/null
+++ b/temp/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/temp/index.ts b/temp/index.ts
new file mode 100644
index 000000000..6b4716c4d
--- /dev/null
+++ b/temp/index.ts
@@ -0,0 +1,7 @@
+function uid(){
+ return `id-${Math.random()}`
+}
+
+class User{
+ //cont...
+}
\ No newline at end of file