first step
This commit is contained in:
@@ -0,0 +1 @@
|
||||
node_modules/
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.1.6](https://github.com/coopenomics/monocoop/compare/v2.1.5...v2.1.6) (2024-10-30)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.1.5](https://github.com/coopenomics/monocoop/compare/v2.1.4...v2.1.5) (2024-10-28)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.1.4](https://github.com/coopenomics/monocoop/compare/v2.1.4-alpha.2...v2.1.4) (2024-10-28)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.1.3](https://github.com/coopenomics/monocoop/compare/v2.1.2-alpha.10...v2.1.3) (2024-10-26)
|
||||
|
||||
|
||||
|
||||
## [2.1.2](https://github.com/coopenomics/monocoop/compare/v2.1.1...v2.1.2) (2024-10-19)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.1.2](https://github.com/coopenomics/monocoop/compare/v2.1.1...v2.1.2) (2024-10-19)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# [2.1.0](https://github.com/coopenomics/monocoop/compare/v2.0.10-alpha.3...v2.1.0) (2024-10-13)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* запрос соглашений ([9a6a72f](https://github.com/coopenomics/monocoop/commit/9a6a72f605ba52eef2ed6f18ccee6fbed287ea00))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.9](https://github.com/coopenomics/monocoop/compare/v2.0.8...v2.0.9) (2024-10-10)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.8](https://github.com/coopenomics/monocoop/compare/v2.0.7...v2.0.8) (2024-10-09)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.7](https://github.com/coopenomics/monocoop/compare/v2.0.6...v2.0.7) (2024-09-30)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.6](https://github.com/coopenomics/monocoop/compare/v2.0.5...v2.0.6) (2024-09-30)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.5](https://github.com/coopenomics/monocoop/compare/v2.0.5-alpha.0...v2.0.5) (2024-09-30)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.0.2](https://github.com/coopenomics/monocoop/compare/v2.0.2-alpha.1...v2.0.2) (2024-09-29)
|
||||
|
||||
**Note:** Version bump only for package monocoop
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 2.1.0 (2024-09-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **importers:** исправлена ошибка в импорте модуля @wharfkit/contract ([bf89032](https://github.com/coopenomics/monocoop/commit/bf89032d8f66444804a2521f4eb96ffc75b0f605))
|
||||
* **terminal:** исправлен шрифт в README ([889447a](https://github.com/coopenomics/monocoop/commit/889447a93ceadb577613ddb5b1cb2ef1cc3d54b6))
|
||||
* **terminal:** исправлено описание проекта ([989b318](https://github.com/coopenomics/monocoop/commit/989b3180ded99a871e018cf26e6c493449223c01))
|
||||
* **terminal:** fix typo in README.md ([fdf9996](https://github.com/coopenomics/monocoop/commit/fdf999619d2d69e960b062fe6815f5b057c95f48))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* добавлен docker-compose.yaml ([6a46697](https://github.com/coopenomics/monocoop/commit/6a46697c9d6cc3cde14dbce8f70997c00f9850de))
|
||||
* **package:** добавлен скрипт gpt-commit для удобного коммита ([e0b5107](https://github.com/coopenomics/monocoop/commit/e0b510799bb0ac68890d572deb652beefd0651c4))
|
||||
* **terminal:** добавлена поддержка новых команд ([73e4ca2](https://github.com/coopenomics/monocoop/commit/73e4ca226acebcbea3ae59a62def99d86efb1353))
|
||||
@@ -0,0 +1,39 @@
|
||||
k# Conventional Commits
|
||||
|
||||
### Основные типы коммитов:
|
||||
|
||||
- **`feat`**: Добавление новой функциональности (feature).
|
||||
- Пример: `feat: добавлена возможность загрузки файлов`
|
||||
|
||||
- **`fix`**: Исправление бага.
|
||||
- Пример: `fix: исправлена ошибка отображения кнопки на мобильных устройствах`
|
||||
|
||||
- **`chore`**: Изменения, не влияющие на исходный код (например, обновление зависимостей или инструментария).
|
||||
- Пример: `chore: обновление зависимостей`
|
||||
|
||||
- **`docs`**: Изменения в документации.
|
||||
- Пример: `docs: обновлено руководство пользователя`
|
||||
|
||||
- **`style`**: Изменения стиля кода, не влияющие на его функциональность (форматирование, пробелы, и т.д.).
|
||||
- Пример: `style: исправлены отступы в коде`
|
||||
|
||||
- **`refactor`**: Изменения в коде, которые не исправляют баги и не добавляют новую функциональность.
|
||||
- Пример: `refactor: улучшена структура класса`
|
||||
|
||||
- **`perf`**: Изменения, направленные на улучшение производительности.
|
||||
- Пример: `perf: оптимизирована работа с массивами`
|
||||
|
||||
- **`test`**: Добавление или изменение тестов.
|
||||
- Пример: `test: добавлен тест для проверки функции отправки сообщений`
|
||||
|
||||
### Дополнительные типы коммитов:
|
||||
|
||||
- **`build`**: Изменения, связанные с процессом сборки или зависимостями.
|
||||
- Пример: `build: обновление конфигурации Webpack`
|
||||
|
||||
- **`ci`**: Изменения, касающиеся настроек непрерывной интеграции (например, Travis, Jenkins).
|
||||
- Пример: `ci: настройка Travis для автоматических сборок`
|
||||
|
||||
- **`revert`**: Откат на предыдущие изменения.
|
||||
- Пример: `revert: откат коммита e0b5107`
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
FROM node:18-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN npm install -g pnpm lerna
|
||||
RUN pnpm install
|
||||
RUN lerna run build
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# CARDCOOP
|
||||
|
||||
## Лицензия
|
||||
Продукт Потребительского Кооператива "ВОСХОД" распространяется по лицензии BY-NC-SA 4.0.
|
||||
|
||||
Разрешено делиться, копировать и распространять материал на любом носителе и форме, адаптировать, делать ремиксы, видоизменять и создавать новое, опираясь на этот материал. При использовании, Вы должны обеспечить указание авторства, предоставить ссылку, и обозначить изменения, если таковые были сделаны. Если вы перерабатываете, преобразовываете материал или берёте его за основу для производного произведения, вы должны распространять переделанные вами части материала на условиях той же лицензии , в соответствии с которой распространяется оригинал. Запрещено коммерческое использование материала. Использование в коммерческих целях – это использование, в первую очередь направленное на получение коммерческого преимущества или денежного вознаграждения.
|
||||
|
||||
Юридический текст лицензии: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.ru
|
||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
module.exports = {
|
||||
parser: '@typescript-eslint/parser',
|
||||
parserOptions: {
|
||||
project: 'tsconfig.json',
|
||||
tsconfigRootDir: __dirname,
|
||||
sourceType: 'module',
|
||||
},
|
||||
plugins: ['@typescript-eslint/eslint-plugin'],
|
||||
extends: [
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
root: true,
|
||||
env: {
|
||||
node: true,
|
||||
jest: true,
|
||||
},
|
||||
ignorePatterns: ['.eslintrc.js'],
|
||||
rules: {
|
||||
'@typescript-eslint/interface-name-prefix': 'off',
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,2 @@
|
||||
.env
|
||||
node_modules/
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# Используем официальный образ Node.js
|
||||
FROM node:14
|
||||
|
||||
# Создаем рабочую директорию
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Копируем package.json и package-lock.json
|
||||
COPY package*.json ./
|
||||
|
||||
# Устанавливаем зависимости
|
||||
RUN npm install
|
||||
|
||||
# Копируем остальной код приложения
|
||||
COPY . .
|
||||
|
||||
# Собираем приложение (если используется TypeScript)
|
||||
RUN npm run build
|
||||
|
||||
# Открываем порт
|
||||
EXPOSE 3000
|
||||
|
||||
# Запускаем приложение
|
||||
CMD ["npm", "run", "start:prod"]
|
||||
@@ -0,0 +1,99 @@
|
||||
<p align="center">
|
||||
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
|
||||
</p>
|
||||
|
||||
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
||||
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
||||
|
||||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
||||
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
||||
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
|
||||
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
||||
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
||||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
|
||||
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
||||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
|
||||
</p>
|
||||
<!--[](https://opencollective.com/nest#backer)
|
||||
[](https://opencollective.com/nest#sponsor)-->
|
||||
|
||||
## Description
|
||||
|
||||
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
||||
|
||||
## Project setup
|
||||
|
||||
```bash
|
||||
$ pnpm install
|
||||
```
|
||||
|
||||
## Compile and run the project
|
||||
|
||||
```bash
|
||||
# development
|
||||
$ pnpm run start
|
||||
|
||||
# watch mode
|
||||
$ pnpm run start:dev
|
||||
|
||||
# production mode
|
||||
$ pnpm run start:prod
|
||||
```
|
||||
|
||||
## Run tests
|
||||
|
||||
```bash
|
||||
# unit tests
|
||||
$ pnpm run test
|
||||
|
||||
# e2e tests
|
||||
$ pnpm run test:e2e
|
||||
|
||||
# test coverage
|
||||
$ pnpm run test:cov
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
|
||||
|
||||
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
|
||||
|
||||
```bash
|
||||
$ pnpm install -g mau
|
||||
$ mau deploy
|
||||
```
|
||||
|
||||
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
|
||||
|
||||
## Resources
|
||||
|
||||
Check out a few resources that may come in handy when working with NestJS:
|
||||
|
||||
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
|
||||
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
|
||||
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
|
||||
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
|
||||
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
|
||||
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
|
||||
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
|
||||
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
|
||||
|
||||
## Support
|
||||
|
||||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
||||
|
||||
## Stay in touch
|
||||
|
||||
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
|
||||
- Website - [https://nestjs.com](https://nestjs.com/)
|
||||
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
||||
|
||||
## License
|
||||
|
||||
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export declare class AppModule {
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
"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 passport_1 = require("@nestjs/passport");
|
||||
const jwt_1 = require("@nestjs/jwt");
|
||||
const auth_controller_1 = require("./infrastructure/auth.controller");
|
||||
const card_controller_1 = require("./infrastructure/card.controller");
|
||||
const access_controller_1 = require("./infrastructure/access.controller");
|
||||
const auth_service_1 = require("./application/auth.service");
|
||||
const card_service_1 = require("./application/card.service");
|
||||
const access_service_1 = require("./application/access.service");
|
||||
const jwt_strategy_1 = require("./infrastructure/strategies/jwt.strategy");
|
||||
const jwt_auth_guard_1 = require("./infrastructure/guards/jwt-auth.guard");
|
||||
const user_domain_service_1 = require("./domain/services/user.domain-service");
|
||||
const card_domain_service_1 = require("./domain/services/card.domain-service");
|
||||
const access_domain_service_1 = require("./domain/services/access.domain-service");
|
||||
const coop_jwt_strategy_1 = require("./infrastructure/strategies/coop-jwt.strategy");
|
||||
const coop_jwt_auth_guard_1 = require("./infrastructure/guards/coop-jwt-auth.guard");
|
||||
const database_module_1 = require("./infrastructure/database.module");
|
||||
let AppModule = class AppModule {
|
||||
};
|
||||
exports.AppModule = AppModule;
|
||||
exports.AppModule = AppModule = __decorate([
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
database_module_1.DatabaseModule,
|
||||
passport_1.PassportModule,
|
||||
jwt_1.JwtModule.register({
|
||||
secret: 'access_secret',
|
||||
signOptions: { expiresIn: '15m' },
|
||||
}),
|
||||
],
|
||||
controllers: [
|
||||
auth_controller_1.AuthController, card_controller_1.CardController, access_controller_1.AccessController
|
||||
],
|
||||
providers: [
|
||||
auth_service_1.AuthService,
|
||||
card_service_1.CardService,
|
||||
access_service_1.AccessService,
|
||||
jwt_strategy_1.JwtStrategy,
|
||||
jwt_auth_guard_1.JwtAuthGuard,
|
||||
user_domain_service_1.UserDomainService,
|
||||
card_domain_service_1.CardDomainService,
|
||||
access_domain_service_1.AccessDomainService,
|
||||
coop_jwt_strategy_1.CoopJwtStrategy,
|
||||
coop_jwt_auth_guard_1.CoopJwtAuthGuard,
|
||||
],
|
||||
})
|
||||
], AppModule);
|
||||
//# sourceMappingURL=app.module.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAClD,qCAAwC;AACxC,sEAAkE;AAClE,sEAAkE;AAClE,0EAAsE;AACtE,6DAAyD;AACzD,6DAAyD;AACzD,iEAA6D;AAC7D,2EAAuE;AACvE,2EAAsE;AACtE,+EAA0E;AAC1E,+EAA0E;AAC1E,mFAA8E;AAC9E,qFAAgF;AAChF,qFAA+E;AAC/E,sEAAkE;AA2B3D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAzBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,gCAAc;YACd,yBAAc;YACd,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;aAClC,CAAC;SACH;QACD,WAAW,EAAE;YACX,gCAAc,EAAE,gCAAc,EAAE,oCAAgB;SACjD;QACD,SAAS,EAAE;YACT,0BAAW;YACX,0BAAW;YACX,8BAAa;YACb,0BAAW;YACX,6BAAY;YACZ,uCAAiB;YACjB,uCAAiB;YACjB,2CAAmB;YACnB,mCAAe;YACf,sCAAgB;SACjB;KACF,CAAC;GACW,SAAS,CAAG"}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { AccessDomainService } from '../domain/services/access.domain-service';
|
||||
import { PrepareShareDataDto, CoopInfoResponseDto, ShareDataDto, ShareDataResponseDto, CoopExchangeTicketDto, CoopJwtResponseDto } from '../infrastructure/dto/access.dto';
|
||||
import { CoopRepository } from 'src/domain/coop.repository';
|
||||
export declare class AccessService {
|
||||
private readonly accessDomainService;
|
||||
private readonly coopRepository;
|
||||
constructor(accessDomainService: AccessDomainService, coopRepository: CoopRepository);
|
||||
prepareShareData(dto: PrepareShareDataDto): Promise<CoopInfoResponseDto>;
|
||||
shareData(dto: ShareDataDto, username: string): Promise<ShareDataResponseDto>;
|
||||
exchangeTicketForJwt(dto: CoopExchangeTicketDto): Promise<CoopJwtResponseDto>;
|
||||
getEncryptedData(username: string, coopName: string): Promise<string>;
|
||||
}
|
||||
@@ -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.AccessService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const access_domain_service_1 = require("../domain/services/access.domain-service");
|
||||
const access_request_entity_1 = require("../domain/access-request.entity");
|
||||
const coop_repository_1 = require("../domain/coop.repository");
|
||||
const jwt = require("jsonwebtoken");
|
||||
let AccessService = class AccessService {
|
||||
constructor(accessDomainService, coopRepository) {
|
||||
this.accessDomainService = accessDomainService;
|
||||
this.coopRepository = coopRepository;
|
||||
}
|
||||
async prepareShareData(dto) {
|
||||
const coop = await this.coopRepository.findByName(dto.coopName);
|
||||
if (!coop) {
|
||||
throw new common_1.BadRequestException('Cooperative not found');
|
||||
}
|
||||
return {
|
||||
coopName: coop.name,
|
||||
coopPublicKey: coop.publicKey,
|
||||
};
|
||||
}
|
||||
async shareData(dto, username) {
|
||||
const accessRequest = new access_request_entity_1.AccessRequest();
|
||||
accessRequest.username = username;
|
||||
accessRequest.coopName = dto.coopName;
|
||||
accessRequest.encryptedData = dto.encryptedData;
|
||||
const ticket = await this.accessDomainService.saveEncryptedData(accessRequest);
|
||||
return { ticket };
|
||||
}
|
||||
async exchangeTicketForJwt(dto) {
|
||||
const accessRequest = await this.accessDomainService.getAccessRequestByAccessId(dto.ticket);
|
||||
if (!accessRequest) {
|
||||
throw new common_1.BadRequestException('Invalid ticket');
|
||||
}
|
||||
const coopAccessToken = jwt.sign({ username: accessRequest.username, coopName: accessRequest.coopName }, 'coop_access_secret', { expiresIn: '15m' });
|
||||
return { accessToken: coopAccessToken };
|
||||
}
|
||||
async getEncryptedData(username, coopName) {
|
||||
const accessRequest = await this.accessDomainService.getEncryptedData(username, coopName);
|
||||
if (!accessRequest) {
|
||||
throw new common_1.BadRequestException('Access not granted');
|
||||
}
|
||||
return accessRequest.encryptedData;
|
||||
}
|
||||
};
|
||||
exports.AccessService = AccessService;
|
||||
exports.AccessService = AccessService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(1, (0, common_1.Inject)(coop_repository_1.COOP_REPOSITORY)),
|
||||
__metadata("design:paramtypes", [access_domain_service_1.AccessDomainService, Object])
|
||||
], AccessService);
|
||||
//# sourceMappingURL=access.service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access.service.js","sourceRoot":"","sources":["../../src/application/access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,oFAA+E;AAE/E,2EAAgE;AAChE,+DAA6E;AAC7E,oCAAoC;AAG7B,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,YACmB,mBAAwC,EACf,cAA8B;QADvD,wBAAmB,GAAnB,mBAAmB,CAAqB;QACf,mBAAc,GAAd,cAAc,CAAgB;IACvE,CAAC;IAEJ,KAAK,CAAC,gBAAgB,CAAC,GAAwB;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,aAAa,EAAE,IAAI,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAiB,EAAE,QAAgB;QACjD,MAAM,aAAa,GAAG,IAAI,qCAAa,EAAE,CAAC;QAC1C,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAClC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACtC,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE/E,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAA0B;QACnD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5F,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAGD,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAC9B,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,EACtE,oBAAoB,EACpB,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACvD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,4BAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;CAGF,CAAA;AAtDY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,iCAAe,CAAC,CAAA;qCADc,2CAAmB;GAFhD,aAAa,CAsDzB"}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { UserDomainService } from '../domain/services/user.domain-service';
|
||||
import { InitiateRegistrationDto, CompleteRegistrationDto, UserResponseDto, InitiateLoginDto, CompleteLoginDto } from '../infrastructure/dto/user.dto';
|
||||
export declare class AuthService {
|
||||
private readonly userDomainService;
|
||||
constructor(userDomainService: UserDomainService);
|
||||
initiateRegistration(dto: InitiateRegistrationDto): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeRegistration(dto: CompleteRegistrationDto): Promise<UserResponseDto>;
|
||||
initiateLogin(dto: InitiateLoginDto): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeLogin(dto: CompleteLoginDto): Promise<UserResponseDto>;
|
||||
private generateAccessToken;
|
||||
private generateRefreshToken;
|
||||
refreshAccessToken(refreshToken: string): Promise<UserResponseDto>;
|
||||
logout(refreshToken: string): Promise<void>;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
"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.AuthService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const user_domain_service_1 = require("../domain/services/user.domain-service");
|
||||
const jwt = require("jsonwebtoken");
|
||||
let AuthService = class AuthService {
|
||||
constructor(userDomainService) {
|
||||
this.userDomainService = userDomainService;
|
||||
}
|
||||
async initiateRegistration(dto) {
|
||||
return this.userDomainService.initiateRegistration(dto.email);
|
||||
}
|
||||
async completeRegistration(dto) {
|
||||
const user = await this.userDomainService.completeRegistration(dto.email, dto.hashKey, dto.uuid);
|
||||
const accessToken = this.generateAccessToken(user.id);
|
||||
const refreshToken = this.generateRefreshToken(user.id);
|
||||
return { accessToken, refreshToken };
|
||||
}
|
||||
async initiateLogin(dto) {
|
||||
return this.userDomainService.initiateLogin(dto.email);
|
||||
}
|
||||
async completeLogin(dto) {
|
||||
const user = await this.userDomainService.completeLogin(dto.email, dto.hashKey, dto.uuid);
|
||||
const accessToken = this.generateAccessToken(user.id);
|
||||
const refreshToken = this.generateRefreshToken(user.id);
|
||||
return { accessToken, refreshToken };
|
||||
}
|
||||
generateAccessToken(userId) {
|
||||
return jwt.sign({ sub: userId }, 'access_secret', { expiresIn: '15m' });
|
||||
}
|
||||
generateRefreshToken(userId) {
|
||||
return jwt.sign({ sub: userId }, 'refresh_secret', { expiresIn: '7d' });
|
||||
}
|
||||
async refreshAccessToken(refreshToken) {
|
||||
try {
|
||||
const payload = jwt.verify(refreshToken, 'refresh_secret');
|
||||
const userId = payload.sub;
|
||||
const accessToken = this.generateAccessToken(userId);
|
||||
const newRefreshToken = this.generateRefreshToken(userId);
|
||||
return { accessToken, refreshToken: newRefreshToken };
|
||||
}
|
||||
catch (error) {
|
||||
throw new Error('Invalid refresh token');
|
||||
}
|
||||
}
|
||||
async logout(refreshToken) {
|
||||
}
|
||||
};
|
||||
exports.AuthService = AuthService;
|
||||
exports.AuthService = AuthService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [user_domain_service_1.UserDomainService])
|
||||
], AuthService);
|
||||
//# sourceMappingURL=auth.service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/application/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gFAA2E;AAE3E,oCAAoC;AAG7B,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAErE,KAAK,CAAC,oBAAoB,CAAC,GAA4B;QACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAA4B;QACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAqB;QACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAqB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1F,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACvC,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEO,oBAAoB,CAAC,MAAc;QACzC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAQ,CAAC;YAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAoB;IAGjC,CAAC;CACF,CAAA;AAvDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEqC,uCAAiB;GADtD,WAAW,CAuDvB"}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { CardDomainService } from '../domain/services/card.domain-service';
|
||||
import { IssueCardDto, CardResponseDto } from '../infrastructure/dto/card.dto';
|
||||
export declare class CardService {
|
||||
private readonly cardDomainService;
|
||||
constructor(cardDomainService: CardDomainService);
|
||||
issueCard(dto: IssueCardDto, userId: string): Promise<CardResponseDto>;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
"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.CardService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const card_domain_service_1 = require("../domain/services/card.domain-service");
|
||||
const card_entity_1 = require("../domain/card.entity");
|
||||
let CardService = class CardService {
|
||||
constructor(cardDomainService) {
|
||||
this.cardDomainService = cardDomainService;
|
||||
}
|
||||
async issueCard(dto, userId) {
|
||||
const card = new card_entity_1.Card();
|
||||
card.username = dto.username;
|
||||
card.encryptedData = dto.encryptedData;
|
||||
card.coopName = dto.coopName;
|
||||
card.signature = dto.signature;
|
||||
card.userId = userId;
|
||||
const savedCard = await this.cardDomainService.issueCard(card);
|
||||
return {
|
||||
id: savedCard.id,
|
||||
username: savedCard.username,
|
||||
coopName: savedCard.coopName,
|
||||
};
|
||||
}
|
||||
};
|
||||
exports.CardService = CardService;
|
||||
exports.CardService = CardService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__metadata("design:paramtypes", [card_domain_service_1.CardDomainService])
|
||||
], CardService);
|
||||
//# sourceMappingURL=card.service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.service.js","sourceRoot":"","sources":["../../src/application/card.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gFAA2E;AAE3E,uDAA6C;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAiB,EAAE,MAAc;QAC/C,MAAM,IAAI,GAAG,IAAI,kBAAI,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/D,OAAO;YACL,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;SAC7B,CAAC;IACJ,CAAC;CACF,CAAA;AAnBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEqC,uCAAiB;GADtD,WAAW,CAmBvB"}
|
||||
@@ -0,0 +1,7 @@
|
||||
export declare class AccessRequest {
|
||||
id: string;
|
||||
accessId: string;
|
||||
username: string;
|
||||
coopName: string;
|
||||
encryptedData: string;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
"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.AccessRequest = void 0;
|
||||
const typeorm_1 = require("typeorm");
|
||||
let AccessRequest = class AccessRequest {
|
||||
};
|
||||
exports.AccessRequest = AccessRequest;
|
||||
__decorate([
|
||||
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
||||
__metadata("design:type", String)
|
||||
], AccessRequest.prototype, "id", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ unique: true }),
|
||||
__metadata("design:type", String)
|
||||
], AccessRequest.prototype, "accessId", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], AccessRequest.prototype, "username", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], AccessRequest.prototype, "coopName", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], AccessRequest.prototype, "encryptedData", void 0);
|
||||
exports.AccessRequest = AccessRequest = __decorate([
|
||||
(0, typeorm_1.Entity)()
|
||||
], AccessRequest);
|
||||
//# sourceMappingURL=access-request.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access-request.entity.js","sourceRoot":"","sources":["../../src/domain/access-request.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiE;AAG1D,IAAM,aAAa,GAAnB,MAAM,aAAa;CAezB,CAAA;AAfY,sCAAa;AAExB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;yCACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;+CACR;AAGjB;IADC,IAAA,gBAAM,GAAE;;+CACQ;AAGjB;IADC,IAAA,gBAAM,GAAE;;+CACQ;AAGjB;IADC,IAAA,gBAAM,GAAE;;oDACa;wBAdX,aAAa;IADzB,IAAA,gBAAM,GAAE;GACI,aAAa,CAezB"}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { AccessRequest } from './access-request.entity';
|
||||
export interface AccessRequestRepository {
|
||||
create(request: Partial<AccessRequest>): Promise<AccessRequest>;
|
||||
update(request: AccessRequest): Promise<AccessRequest>;
|
||||
findByAccessId(accessId: string): Promise<AccessRequest | undefined>;
|
||||
findByUsernameAndCoopName(username: string, coopName: string): Promise<AccessRequest | undefined>;
|
||||
deleteByUsernameAndCoopName(username: string, coopName: string): Promise<void>;
|
||||
findByUsername(username: string): Promise<AccessRequest[]>;
|
||||
}
|
||||
export declare const ACCESS_REQUEST_REPOSITORY: unique symbol;
|
||||
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ACCESS_REQUEST_REPOSITORY = void 0;
|
||||
exports.ACCESS_REQUEST_REPOSITORY = Symbol('AccessRequestRepository');
|
||||
//# sourceMappingURL=access-request.repository.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access-request.repository.js","sourceRoot":"","sources":["../../src/domain/access-request.repository.ts"],"names":[],"mappings":";;;AAWa,QAAA,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA"}
|
||||
@@ -0,0 +1,8 @@
|
||||
export declare class Card {
|
||||
id: string;
|
||||
username: string;
|
||||
encryptedData: string;
|
||||
coopName: string;
|
||||
signature: string;
|
||||
userId: string;
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
"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.Card = void 0;
|
||||
const typeorm_1 = require("typeorm");
|
||||
let Card = class Card {
|
||||
};
|
||||
exports.Card = Card;
|
||||
__decorate([
|
||||
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "id", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "username", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "encryptedData", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "coopName", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "signature", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Card.prototype, "userId", void 0);
|
||||
exports.Card = Card = __decorate([
|
||||
(0, typeorm_1.Entity)()
|
||||
], Card);
|
||||
//# sourceMappingURL=card.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.entity.js","sourceRoot":"","sources":["../../src/domain/card.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiE;AAG1D,IAAM,IAAI,GAAV,MAAM,IAAI;CAkBhB,CAAA;AAlBY,oBAAI;AAEf;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;gCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;sCACQ;AAGjB;IADC,IAAA,gBAAM,GAAE;;2CACa;AAGtB;IADC,IAAA,gBAAM,GAAE;;sCACQ;AAGjB;IADC,IAAA,gBAAM,GAAE;;uCACS;AAGlB;IADC,IAAA,gBAAM,GAAE;;oCACM;eAjBJ,IAAI;IADhB,IAAA,gBAAM,GAAE;GACI,IAAI,CAkBhB"}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { Card } from './card.entity';
|
||||
export interface CardRepository {
|
||||
save(card: Partial<Card>): Promise<Card>;
|
||||
findByUsername(username: string): Promise<Card | undefined>;
|
||||
}
|
||||
export declare const CARD_REPOSITORY: unique symbol;
|
||||
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CARD_REPOSITORY = void 0;
|
||||
exports.CARD_REPOSITORY = Symbol('CardRepository');
|
||||
//# sourceMappingURL=card.repository.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.repository.js","sourceRoot":"","sources":["../../src/domain/card.repository.ts"],"names":[],"mappings":";;;AAOa,QAAA,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA"}
|
||||
@@ -0,0 +1,5 @@
|
||||
export declare class Coop {
|
||||
id: string;
|
||||
name: string;
|
||||
publicKey: string;
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
"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.Coop = void 0;
|
||||
const typeorm_1 = require("typeorm");
|
||||
let Coop = class Coop {
|
||||
};
|
||||
exports.Coop = Coop;
|
||||
__decorate([
|
||||
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
||||
__metadata("design:type", String)
|
||||
], Coop.prototype, "id", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ unique: true }),
|
||||
__metadata("design:type", String)
|
||||
], Coop.prototype, "name", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], Coop.prototype, "publicKey", void 0);
|
||||
exports.Coop = Coop = __decorate([
|
||||
(0, typeorm_1.Entity)()
|
||||
], Coop);
|
||||
//# sourceMappingURL=coop.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"coop.entity.js","sourceRoot":"","sources":["../../src/domain/coop.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiE;AAG1D,IAAM,IAAI,GAAV,MAAM,IAAI;CAShB,CAAA;AATY,oBAAI;AAEf;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;gCACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;kCACZ;AAGb;IADC,IAAA,gBAAM,GAAE;;uCACS;eARP,IAAI;IADhB,IAAA,gBAAM,GAAE;GACI,IAAI,CAShB"}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { Coop } from './coop.entity';
|
||||
export interface CoopRepository {
|
||||
findByName(name: string): Promise<Coop | undefined>;
|
||||
}
|
||||
export declare const COOP_REPOSITORY: unique symbol;
|
||||
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.COOP_REPOSITORY = void 0;
|
||||
exports.COOP_REPOSITORY = Symbol('CoopRepository');
|
||||
//# sourceMappingURL=coop.repository.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"coop.repository.js","sourceRoot":"","sources":["../../src/domain/coop.repository.ts"],"names":[],"mappings":";;;AAMa,QAAA,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA"}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { AccessRequestRepository } from '../access-request.repository';
|
||||
import { AccessRequest } from '../access-request.entity';
|
||||
export declare class AccessDomainService {
|
||||
private readonly accessRequestRepository;
|
||||
constructor(accessRequestRepository: AccessRequestRepository);
|
||||
saveEncryptedData(accessRequest: AccessRequest): Promise<string>;
|
||||
getAccessRequestByAccessId(accessId: string): Promise<AccessRequest | undefined>;
|
||||
getEncryptedData(username: string, coopName: string): Promise<AccessRequest>;
|
||||
revokeAccess(username: string, coopName: string): Promise<void>;
|
||||
listAccesses(username: string): Promise<AccessRequest[]>;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
"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.AccessDomainService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const access_request_repository_1 = require("../access-request.repository");
|
||||
const uuid_1 = require("uuid");
|
||||
let AccessDomainService = class AccessDomainService {
|
||||
constructor(accessRequestRepository) {
|
||||
this.accessRequestRepository = accessRequestRepository;
|
||||
}
|
||||
async saveEncryptedData(accessRequest) {
|
||||
const existingAccessRequest = await this.accessRequestRepository.findByUsernameAndCoopName(accessRequest.username, accessRequest.coopName);
|
||||
if (existingAccessRequest) {
|
||||
existingAccessRequest.encryptedData = accessRequest.encryptedData;
|
||||
await this.accessRequestRepository.update(existingAccessRequest);
|
||||
return existingAccessRequest.accessId;
|
||||
}
|
||||
else {
|
||||
const accessId = (0, uuid_1.v4)();
|
||||
accessRequest.accessId = accessId;
|
||||
await this.accessRequestRepository.create(accessRequest);
|
||||
return accessId;
|
||||
}
|
||||
}
|
||||
async getAccessRequestByAccessId(accessId) {
|
||||
return this.accessRequestRepository.findByAccessId(accessId);
|
||||
}
|
||||
async getEncryptedData(username, coopName) {
|
||||
const request = await this.accessRequestRepository.findByUsernameAndCoopName(username, coopName);
|
||||
if (!request) {
|
||||
throw new Error('Access not granted');
|
||||
}
|
||||
return request;
|
||||
}
|
||||
async revokeAccess(username, coopName) {
|
||||
await this.accessRequestRepository.deleteByUsernameAndCoopName(username, coopName);
|
||||
}
|
||||
async listAccesses(username) {
|
||||
return this.accessRequestRepository.findByUsername(username);
|
||||
}
|
||||
};
|
||||
exports.AccessDomainService = AccessDomainService;
|
||||
exports.AccessDomainService = AccessDomainService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, common_1.Inject)(access_request_repository_1.ACCESS_REQUEST_REPOSITORY)),
|
||||
__metadata("design:paramtypes", [Object])
|
||||
], AccessDomainService);
|
||||
//# sourceMappingURL=access.domain-service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access.domain-service.js","sourceRoot":"","sources":["../../../src/domain/services/access.domain-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,4EAAkG;AAElG,+BAAoC;AAG7B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAAgE,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;IAAG,CAAC;IAGpH,KAAK,CAAC,iBAAiB,CAAC,aAA4B;QAElD,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CACxF,aAAa,CAAC,QAAQ,EACtB,aAAa,CAAC,QAAQ,CACvB,CAAC;QAEF,IAAI,qBAAqB,EAAE,CAAC;YAE1B,qBAAqB,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;YAClE,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACjE,OAAO,qBAAqB,CAAC,QAAQ,CAAC;QACxC,CAAC;aAAM,CAAC;YAEN,MAAM,QAAQ,GAAG,IAAA,SAAM,GAAE,CAAC;YAC1B,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAClC,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACzD,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,0BAA0B,CAAC,QAAgB;QAC/C,OAAO,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjG,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,QAAgB;QACnD,MAAM,IAAI,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACF,CAAA;AA/CY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,qDAAyB,CAAC,CAAA;;GADnC,mBAAmB,CA+C/B"}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { CardRepository } from '../card.repository';
|
||||
import { Card } from '../card.entity';
|
||||
export declare class CardDomainService {
|
||||
private readonly cardRepository;
|
||||
constructor(cardRepository: CardRepository);
|
||||
issueCard(card: Card): Promise<Card>;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
"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.CardDomainService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const card_repository_1 = require("../card.repository");
|
||||
let CardDomainService = class CardDomainService {
|
||||
constructor(cardRepository) {
|
||||
this.cardRepository = cardRepository;
|
||||
}
|
||||
async issueCard(card) {
|
||||
return this.cardRepository.save(card);
|
||||
}
|
||||
};
|
||||
exports.CardDomainService = CardDomainService;
|
||||
exports.CardDomainService = CardDomainService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, common_1.Inject)(card_repository_1.CARD_REPOSITORY)),
|
||||
__metadata("design:paramtypes", [Object])
|
||||
], CardDomainService);
|
||||
//# sourceMappingURL=card.domain-service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.domain-service.js","sourceRoot":"","sources":["../../../src/domain/services/card.domain-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,wDAAqE;AAI9D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAAsD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAExF,KAAK,CAAC,SAAS,CAAC,IAAU;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AANY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,iCAAe,CAAC,CAAA;;GADzB,iBAAiB,CAM7B"}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { UserRepository } from '../user.repository';
|
||||
import { User } from '../user.entity';
|
||||
export declare class UserDomainService {
|
||||
private readonly userRepository;
|
||||
constructor(userRepository: UserRepository);
|
||||
initiateRegistration(email: string): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeRegistration(email: string, hashKey: string, uuid: string): Promise<User>;
|
||||
initiateLogin(email: string): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeLogin(email: string, hashKey: string, uuid: string): Promise<User>;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
"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.UserDomainService = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const user_repository_1 = require("../user.repository");
|
||||
const user_entity_1 = require("../user.entity");
|
||||
const uuid_1 = require("uuid");
|
||||
let UserDomainService = class UserDomainService {
|
||||
constructor(userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
async initiateRegistration(email) {
|
||||
const existingUser = await this.userRepository.findByEmail(email);
|
||||
if (existingUser) {
|
||||
throw new Error('User already exists');
|
||||
}
|
||||
const serverSalt = (0, uuid_1.v4)();
|
||||
const uuid = (0, uuid_1.v4)();
|
||||
return { uuid, serverSalt };
|
||||
}
|
||||
async completeRegistration(email, hashKey, uuid) {
|
||||
const user = new user_entity_1.User();
|
||||
user.email = email;
|
||||
user.serverSalt = uuid;
|
||||
user.hashKey = hashKey;
|
||||
return this.userRepository.create(user);
|
||||
}
|
||||
async initiateLogin(email) {
|
||||
const user = await this.userRepository.findByEmail(email);
|
||||
if (!user) {
|
||||
throw new Error('User not found');
|
||||
}
|
||||
return { uuid: user.serverSalt, serverSalt: user.serverSalt };
|
||||
}
|
||||
async completeLogin(email, hashKey, uuid) {
|
||||
const user = await this.userRepository.findByEmail(email);
|
||||
if (!user || user.serverSalt !== uuid || user.hashKey !== hashKey) {
|
||||
throw new Error('Invalid credentials');
|
||||
}
|
||||
return user;
|
||||
}
|
||||
};
|
||||
exports.UserDomainService = UserDomainService;
|
||||
exports.UserDomainService = UserDomainService = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, common_1.Inject)(user_repository_1.USER_REPOSITORY)),
|
||||
__metadata("design:paramtypes", [Object])
|
||||
], UserDomainService);
|
||||
//# sourceMappingURL=user.domain-service.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.domain-service.js","sourceRoot":"","sources":["../../../src/domain/services/user.domain-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,wDAAqE;AACrE,gDAAsC;AACtC,+BAAoC;AAG7B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAAsD,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAExF,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,SAAM,GAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,SAAM,GAAE,CAAC;QAItB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,OAAe,EAAE,IAAY;QAGrE,MAAM,IAAI,GAAG,IAAI,kBAAI,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,OAAe,EAAE,IAAY;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA7CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,iCAAe,CAAC,CAAA;;GADzB,iBAAiB,CA6C7B"}
|
||||
@@ -0,0 +1,5 @@
|
||||
export interface TicketRepository {
|
||||
save(ticket: string, userId: string): Promise<void>;
|
||||
getUserId(ticket: string): Promise<string | null>;
|
||||
delete(ticket: string): Promise<void>;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=ticket.repository.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ticket.repository.js","sourceRoot":"","sources":["../../src/domain/ticket.repository.ts"],"names":[],"mappings":""}
|
||||
@@ -0,0 +1,7 @@
|
||||
export declare class User {
|
||||
id: string;
|
||||
email: string;
|
||||
serverSalt: string;
|
||||
hashKey: string;
|
||||
isVerified: boolean;
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
"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.User = void 0;
|
||||
const typeorm_1 = require("typeorm");
|
||||
let User = class User {
|
||||
};
|
||||
exports.User = User;
|
||||
__decorate([
|
||||
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
||||
__metadata("design:type", String)
|
||||
], User.prototype, "id", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ unique: true }),
|
||||
__metadata("design:type", String)
|
||||
], User.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], User.prototype, "serverSalt", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)(),
|
||||
__metadata("design:type", String)
|
||||
], User.prototype, "hashKey", void 0);
|
||||
__decorate([
|
||||
(0, typeorm_1.Column)({ default: false }),
|
||||
__metadata("design:type", Boolean)
|
||||
], User.prototype, "isVerified", void 0);
|
||||
exports.User = User = __decorate([
|
||||
(0, typeorm_1.Entity)('user')
|
||||
], User);
|
||||
//# sourceMappingURL=user.entity.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/domain/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAiE;AAG1D,IAAM,IAAI,GAAV,MAAM,IAAI;CAehB,CAAA;AAfY,oBAAI;AAEf;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;gCACpB;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;mCACX;AAGd;IADC,IAAA,gBAAM,GAAE;;wCACU;AAGnB;IADC,IAAA,gBAAM,GAAE;;qCACO;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;wCACP;eAdT,IAAI;IADhB,IAAA,gBAAM,EAAC,MAAM,CAAC;GACF,IAAI,CAehB"}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { User } from './user.entity';
|
||||
export interface UserRepository {
|
||||
create(user: Partial<User>): Promise<User>;
|
||||
findByEmail(email: string): Promise<User | undefined>;
|
||||
update(user: User): Promise<User>;
|
||||
}
|
||||
export declare const USER_REPOSITORY: unique symbol;
|
||||
@@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.USER_REPOSITORY = void 0;
|
||||
exports.USER_REPOSITORY = Symbol('UserRepository');
|
||||
//# sourceMappingURL=user.repository.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../src/domain/user.repository.ts"],"names":[],"mappings":";;;AAQa,QAAA,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA"}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Repository } from 'typeorm';
|
||||
import { AccessRequest } from '../domain/access-request.entity';
|
||||
import { AccessRequestRepository } from '../domain/access-request.repository';
|
||||
export declare class AccessRequestRepositoryImpl implements AccessRequestRepository {
|
||||
private readonly repository;
|
||||
constructor(repository: Repository<AccessRequest>);
|
||||
create(request: AccessRequest): Promise<AccessRequest>;
|
||||
update(request: AccessRequest): Promise<AccessRequest>;
|
||||
findByAccessId(accessId: string): Promise<AccessRequest | undefined>;
|
||||
findByUsernameAndCoopName(username: string, coopName: string): Promise<AccessRequest | undefined>;
|
||||
deleteByUsernameAndCoopName(username: string, coopName: string): Promise<void>;
|
||||
findByUsername(username: string): Promise<AccessRequest[]>;
|
||||
}
|
||||
@@ -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);
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AccessRequestRepositoryImpl = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const typeorm_1 = require("typeorm");
|
||||
const access_request_entity_1 = require("../domain/access-request.entity");
|
||||
const typeorm_2 = require("@nestjs/typeorm");
|
||||
let AccessRequestRepositoryImpl = class AccessRequestRepositoryImpl {
|
||||
constructor(repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
async create(request) {
|
||||
return this.repository.save(request);
|
||||
}
|
||||
async update(request) {
|
||||
return this.repository.save(request);
|
||||
}
|
||||
async findByAccessId(accessId) {
|
||||
return this.repository.findOne({ where: { accessId } });
|
||||
}
|
||||
async findByUsernameAndCoopName(username, coopName) {
|
||||
return this.repository.findOne({ where: { username, coopName } });
|
||||
}
|
||||
async deleteByUsernameAndCoopName(username, coopName) {
|
||||
await this.repository.delete({ username, coopName });
|
||||
}
|
||||
async findByUsername(username) {
|
||||
return this.repository.find({ where: { username } });
|
||||
}
|
||||
};
|
||||
exports.AccessRequestRepositoryImpl = AccessRequestRepositoryImpl;
|
||||
exports.AccessRequestRepositoryImpl = AccessRequestRepositoryImpl = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, typeorm_2.InjectRepository)(access_request_entity_1.AccessRequest)),
|
||||
__metadata("design:paramtypes", [typeorm_1.Repository])
|
||||
], AccessRequestRepositoryImpl);
|
||||
//# sourceMappingURL=access-request.repository.impl.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access-request.repository.impl.js","sourceRoot":"","sources":["../../src/infrastructure/access-request.repository.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAqC;AACrC,2EAAgE;AAChE,6CAAmD;AAI5C,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACtC,YAEmB,UAAqC;QAArC,eAAU,GAAV,UAAU,CAA2B;IACrD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,QAAgB,EAAE,QAAgB;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,QAAgB,EAAE,QAAgB;QAClE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AA7BY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,qCAAa,CAAC,CAAA;qCACH,oBAAU;GAH9B,2BAA2B,CA6BvC"}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { AccessService } from '../application/access.service';
|
||||
import { PrepareShareDataDto, CoopInfoResponseDto, ShareDataDto, ShareDataResponseDto, CoopExchangeTicketDto, CoopJwtResponseDto } from './dto/access.dto';
|
||||
export declare class AccessController {
|
||||
private readonly accessService;
|
||||
constructor(accessService: AccessService);
|
||||
prepareShareData(dto: PrepareShareDataDto): Promise<CoopInfoResponseDto>;
|
||||
shareData(dto: ShareDataDto, req: any): Promise<ShareDataResponseDto>;
|
||||
exchangeTicketForJwt(dto: CoopExchangeTicketDto): Promise<CoopJwtResponseDto>;
|
||||
getEncryptedData(username: string, coopName: string): Promise<{
|
||||
encryptedData: string;
|
||||
}>;
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
"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.AccessController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const access_service_1 = require("../application/access.service");
|
||||
const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
|
||||
const access_dto_1 = require("./dto/access.dto");
|
||||
const coop_jwt_auth_guard_1 = require("./guards/coop-jwt-auth.guard");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const swagger_decorator_1 = require("./decorators/swagger.decorator");
|
||||
let AccessController = class AccessController {
|
||||
constructor(accessService) {
|
||||
this.accessService = accessService;
|
||||
}
|
||||
async prepareShareData(dto) {
|
||||
return this.accessService.prepareShareData(dto);
|
||||
}
|
||||
async shareData(dto, req) {
|
||||
const username = req.user.userId;
|
||||
return this.accessService.shareData(dto, username);
|
||||
}
|
||||
async exchangeTicketForJwt(dto) {
|
||||
return this.accessService.exchangeTicketForJwt(dto);
|
||||
}
|
||||
async getEncryptedData(username, coopName) {
|
||||
const encryptedData = await this.accessService.getEncryptedData(username, coopName);
|
||||
return { encryptedData };
|
||||
}
|
||||
};
|
||||
exports.AccessController = AccessController;
|
||||
__decorate([
|
||||
(0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
|
||||
(0, common_1.Post)('prepare-share-data'),
|
||||
(0, swagger_decorator_1.Swagger)('Подготовка данных для общего доступа'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешная подготовка данных',
|
||||
type: access_dto_1.CoopInfoResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [access_dto_1.PrepareShareDataDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AccessController.prototype, "prepareShareData", null);
|
||||
__decorate([
|
||||
(0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
|
||||
(0, common_1.Post)('share-data'),
|
||||
(0, swagger_decorator_1.Swagger)('Передача данных'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешная передача данных',
|
||||
type: access_dto_1.ShareDataResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__param(1, (0, common_1.Request)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [access_dto_1.ShareDataDto, Object]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AccessController.prototype, "shareData", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('exchange-ticket'),
|
||||
(0, swagger_decorator_1.Swagger)('Обмен тикета на JWT'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешный обмен тикета на JWT',
|
||||
type: access_dto_1.CoopJwtResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [access_dto_1.CoopExchangeTicketDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AccessController.prototype, "exchangeTicketForJwt", null);
|
||||
__decorate([
|
||||
(0, common_1.UseGuards)(coop_jwt_auth_guard_1.CoopJwtAuthGuard),
|
||||
(0, common_1.Get)('get-encrypted-data/:username/:coopName'),
|
||||
(0, swagger_decorator_1.Swagger)('Получение зашифрованных данных'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешное получение зашифрованных данных',
|
||||
schema: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
encryptedData: { type: 'string' },
|
||||
},
|
||||
},
|
||||
}),
|
||||
__param(0, (0, common_1.Param)('username')),
|
||||
__param(1, (0, common_1.Param)('coopName')),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [String, String]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AccessController.prototype, "getEncryptedData", null);
|
||||
exports.AccessController = AccessController = __decorate([
|
||||
(0, swagger_1.ApiTags)('Access'),
|
||||
(0, common_1.Controller)('access'),
|
||||
__metadata("design:paramtypes", [access_service_1.AccessService])
|
||||
], AccessController);
|
||||
//# sourceMappingURL=access.controller.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access.controller.js","sourceRoot":"","sources":["../../src/infrastructure/access.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,kEAA8D;AAC9D,4DAAuD;AACvD,iDAA2J;AAC3J,sEAAgE;AAChE,6CAAqE;AACrE,sEAAyD;AAIlD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAUvD,AAAN,KAAK,CAAC,gBAAgB,CAAS,GAAwB;QACrD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAUK,AAAN,KAAK,CAAC,SAAS,CAAS,GAAiB,EAAa,GAAG;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IASK,AAAN,KAAK,CAAC,oBAAoB,CAAS,GAA0B;QAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAeK,AAAN,KAAK,CAAC,gBAAgB,CAAoB,QAAgB,EAAqB,QAAgB;QAC7F,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpF,OAAO,EAAE,aAAa,EAAE,CAAC;IAC3B,CAAC;CAGF,CAAA;AA1DY,4CAAgB;AAWrB;IARL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,2BAAO,EAAC,sCAAsC,CAAC;IAC/C,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,gCAAmB;KAC1B,CAAC;IACsB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,gCAAmB;;wDAEtD;AAUK;IARL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,aAAI,EAAC,YAAY,CAAC;IAClB,IAAA,2BAAO,EAAC,iBAAiB,CAAC;IAC1B,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,iCAAoB;KAC3B,CAAC;IACe,WAAA,IAAA,aAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,gBAAO,GAAE,CAAA;;qCAAxB,yBAAY;;iDAGxC;AASK;IAPL,IAAA,aAAI,EAAC,iBAAiB,CAAC;IACvB,IAAA,2BAAO,EAAC,qBAAqB,CAAC;IAC9B,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,+BAAkB;KACzB,CAAC;IAC0B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,kCAAqB;;4DAE5D;AAeK;IAbL,IAAA,kBAAS,EAAC,sCAAgB,CAAC;IAC3B,IAAA,YAAG,EAAC,wCAAwC,CAAC;IAC7C,IAAA,2BAAO,EAAC,gCAAgC,CAAC;IACzC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAClC;SACF;KACF,CAAC;IACsB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;wDAG7E;2BAvDU,gBAAgB;IAF5B,IAAA,iBAAO,EAAC,QAAQ,CAAC;IACjB,IAAA,mBAAU,EAAC,QAAQ,CAAC;qCAEyB,8BAAa;GAD9C,gBAAgB,CA0D5B"}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { AuthService } from '../application/auth.service';
|
||||
import { InitiateRegistrationDto, CompleteRegistrationDto, UserResponseDto, InitiateLoginDto, CompleteLoginDto } from './dto/user.dto';
|
||||
export declare class AuthController {
|
||||
private readonly authService;
|
||||
constructor(authService: AuthService);
|
||||
initiateRegistration(dto: InitiateRegistrationDto): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeRegistration(dto: CompleteRegistrationDto): Promise<UserResponseDto>;
|
||||
initiateLogin(dto: InitiateLoginDto): Promise<{
|
||||
uuid: string;
|
||||
serverSalt: string;
|
||||
}>;
|
||||
completeLogin(dto: CompleteLoginDto): Promise<UserResponseDto>;
|
||||
refreshAccessToken(authHeader: string): Promise<UserResponseDto>;
|
||||
logout(authHeader: string): Promise<void>;
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
"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.AuthController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const auth_service_1 = require("../application/auth.service");
|
||||
const user_dto_1 = require("./dto/user.dto");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const swagger_decorator_1 = require("./decorators/swagger.decorator");
|
||||
let AuthController = class AuthController {
|
||||
constructor(authService) {
|
||||
this.authService = authService;
|
||||
}
|
||||
async initiateRegistration(dto) {
|
||||
return this.authService.initiateRegistration(dto);
|
||||
}
|
||||
async completeRegistration(dto) {
|
||||
return this.authService.completeRegistration(dto);
|
||||
}
|
||||
async initiateLogin(dto) {
|
||||
return this.authService.initiateLogin(dto);
|
||||
}
|
||||
async completeLogin(dto) {
|
||||
return this.authService.completeLogin(dto);
|
||||
}
|
||||
async refreshAccessToken(authHeader) {
|
||||
const refreshToken = authHeader.split(' ')[1];
|
||||
return this.authService.refreshAccessToken(refreshToken);
|
||||
}
|
||||
async logout(authHeader) {
|
||||
const refreshToken = authHeader.split(' ')[1];
|
||||
await this.authService.logout(refreshToken);
|
||||
}
|
||||
};
|
||||
exports.AuthController = AuthController;
|
||||
__decorate([
|
||||
(0, common_1.Post)('initiate-registration'),
|
||||
(0, swagger_decorator_1.Swagger)('Инициализация регистрации'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешная инициализация регистрации',
|
||||
type: user_dto_1.InitiateRegistrationDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [user_dto_1.InitiateRegistrationDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "initiateRegistration", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('complete-registration'),
|
||||
(0, swagger_decorator_1.Swagger)('Завершение регистрации'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешное завершение регистрации',
|
||||
type: user_dto_1.UserResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [user_dto_1.CompleteRegistrationDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "completeRegistration", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('initiate-login'),
|
||||
(0, swagger_decorator_1.Swagger)('Инициализация входа'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешная инициализация входа',
|
||||
type: user_dto_1.InitiateLoginDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [user_dto_1.InitiateLoginDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "initiateLogin", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('complete-login'),
|
||||
(0, swagger_decorator_1.Swagger)('Завершение входа'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешное завершение входа',
|
||||
type: user_dto_1.UserResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [user_dto_1.CompleteLoginDto]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "completeLogin", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('refresh-token'),
|
||||
(0, swagger_decorator_1.Swagger)('Обновление токена'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешное обновление токена',
|
||||
type: user_dto_1.UserResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Headers)('Authorization')),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [String]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "refreshAccessToken", null);
|
||||
__decorate([
|
||||
(0, common_1.Post)('logout'),
|
||||
(0, swagger_decorator_1.Swagger)('Выход'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешный выход',
|
||||
}),
|
||||
__param(0, (0, common_1.Headers)('Authorization')),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [String]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], AuthController.prototype, "logout", null);
|
||||
exports.AuthController = AuthController = __decorate([
|
||||
(0, swagger_1.ApiTags)('Auth'),
|
||||
(0, common_1.Controller)('auth'),
|
||||
__metadata("design:paramtypes", [auth_service_1.AuthService])
|
||||
], AuthController);
|
||||
//# sourceMappingURL=auth.controller.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/infrastructure/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,8DAA0D;AAC1D,6CAAuI;AACvI,6CAAqE;AACrE,sEAAyD;AAIlD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IASnD,AAAN,KAAK,CAAC,oBAAoB,CAAS,GAA4B;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IASK,AAAN,KAAK,CAAC,oBAAoB,CAAS,GAA4B;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IASK,AAAN,KAAK,CAAC,aAAa,CAAS,GAAqB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IASK,AAAN,KAAK,CAAC,aAAa,CAAS,GAAqB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IASK,AAAN,KAAK,CAAC,kBAAkB,CAA2B,UAAkB;QACnE,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAQK,AAAN,KAAK,CAAC,MAAM,CAA2B,UAAkB;QACvD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AArEY,wCAAc;AAUnB;IAPL,IAAA,aAAI,EAAC,uBAAuB,CAAC;IAC7B,IAAA,2BAAO,EAAC,2BAA2B,CAAC;IACpC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,kCAAuB;KAC9B,CAAC;IAC0B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,kCAAuB;;0DAE9D;AASK;IAPL,IAAA,aAAI,EAAC,uBAAuB,CAAC;IAC7B,IAAA,2BAAO,EAAC,wBAAwB,CAAC;IACjC,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,0BAAe;KACtB,CAAC;IAC0B,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,kCAAuB;;0DAE9D;AASK;IAPL,IAAA,aAAI,EAAC,gBAAgB,CAAC;IACtB,IAAA,2BAAO,EAAC,qBAAqB,CAAC;IAC9B,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,2BAAgB;KACvB,CAAC;IACmB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,2BAAgB;;mDAEhD;AASK;IAPL,IAAA,aAAI,EAAC,gBAAgB,CAAC;IACtB,IAAA,2BAAO,EAAC,kBAAkB,CAAC;IAC3B,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,0BAAe;KACtB,CAAC;IACmB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,2BAAgB;;mDAEhD;AASK;IAPL,IAAA,aAAI,EAAC,eAAe,CAAC;IACrB,IAAA,2BAAO,EAAC,mBAAmB,CAAC;IAC5B,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,4BAA4B;QACzC,IAAI,EAAE,0BAAe;KACtB,CAAC;IACwB,WAAA,IAAA,gBAAO,EAAC,eAAe,CAAC,CAAA;;;;wDAGjD;AAQK;IANL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,2BAAO,EAAC,OAAO,CAAC;IAChB,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,gBAAgB;KAC9B,CAAC;IACY,WAAA,IAAA,gBAAO,EAAC,eAAe,CAAC,CAAA;;;;4CAGrC;yBApEU,cAAc;IAF1B,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,0BAAW;GAD1C,cAAc,CAqE1B"}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { CardService } from '../application/card.service';
|
||||
import { IssueCardDto, CardResponseDto } from './dto/card.dto';
|
||||
export declare class CardController {
|
||||
private readonly cardService;
|
||||
constructor(cardService: CardService);
|
||||
issueCard(dto: IssueCardDto, req: any): Promise<CardResponseDto>;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
"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.CardController = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const card_service_1 = require("../application/card.service");
|
||||
const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
|
||||
const card_dto_1 = require("./dto/card.dto");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
const swagger_decorator_1 = require("./decorators/swagger.decorator");
|
||||
let CardController = class CardController {
|
||||
constructor(cardService) {
|
||||
this.cardService = cardService;
|
||||
}
|
||||
async issueCard(dto, req) {
|
||||
const userId = req.user.userId;
|
||||
return this.cardService.issueCard(dto, userId);
|
||||
}
|
||||
};
|
||||
exports.CardController = CardController;
|
||||
__decorate([
|
||||
(0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
|
||||
(0, common_1.Post)('issue'),
|
||||
(0, swagger_decorator_1.Swagger)('Выпуск карты'),
|
||||
(0, swagger_1.ApiResponse)({
|
||||
status: 200,
|
||||
description: 'Успешный выпуск карты',
|
||||
type: card_dto_1.CardResponseDto,
|
||||
}),
|
||||
__param(0, (0, common_1.Body)()),
|
||||
__param(1, (0, common_1.Request)()),
|
||||
__metadata("design:type", Function),
|
||||
__metadata("design:paramtypes", [card_dto_1.IssueCardDto, Object]),
|
||||
__metadata("design:returntype", Promise)
|
||||
], CardController.prototype, "issueCard", null);
|
||||
exports.CardController = CardController = __decorate([
|
||||
(0, swagger_1.ApiTags)('Card'),
|
||||
(0, common_1.Controller)('card'),
|
||||
__metadata("design:paramtypes", [card_service_1.CardService])
|
||||
], CardController);
|
||||
//# sourceMappingURL=card.controller.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.controller.js","sourceRoot":"","sources":["../../src/infrastructure/card.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4E;AAC5E,8DAA0D;AAC1D,4DAAuD;AACvD,6CAA+D;AAC/D,6CAAqE;AACrE,sEAAyD;AAIlD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAUnD,AAAN,KAAK,CAAC,SAAS,CAAS,GAAiB,EAAa,GAAG;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAfY,wCAAc;AAWnB;IARL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,2BAAO,EAAC,cAAc,CAAC;IACvB,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,0BAAe;KACtB,CAAC;IACe,WAAA,IAAA,aAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,gBAAO,GAAE,CAAA;;qCAAxB,uBAAY;;+CAGxC;yBAdU,cAAc;IAF1B,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,mBAAU,EAAC,MAAM,CAAC;qCAEyB,0BAAW;GAD1C,cAAc,CAe1B"}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Repository } from 'typeorm';
|
||||
import { Card } from '../domain/card.entity';
|
||||
import { CardRepository } from '../domain/card.repository';
|
||||
export declare class CardRepositoryImpl implements CardRepository {
|
||||
private readonly repository;
|
||||
constructor(repository: Repository<Card>);
|
||||
save(card: Partial<Card>): Promise<Card>;
|
||||
findByUsername(username: string): Promise<Card | undefined>;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
"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.CardRepositoryImpl = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const typeorm_1 = require("typeorm");
|
||||
const card_entity_1 = require("../domain/card.entity");
|
||||
const typeorm_2 = require("@nestjs/typeorm");
|
||||
let CardRepositoryImpl = class CardRepositoryImpl {
|
||||
constructor(repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
async save(card) {
|
||||
return this.repository.save(card);
|
||||
}
|
||||
async findByUsername(username) {
|
||||
return this.repository.findOne({ where: { username } });
|
||||
}
|
||||
};
|
||||
exports.CardRepositoryImpl = CardRepositoryImpl;
|
||||
exports.CardRepositoryImpl = CardRepositoryImpl = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, typeorm_2.InjectRepository)(card_entity_1.Card)),
|
||||
__metadata("design:paramtypes", [typeorm_1.Repository])
|
||||
], CardRepositoryImpl);
|
||||
//# sourceMappingURL=card.repository.impl.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.repository.impl.js","sourceRoot":"","sources":["../../src/infrastructure/card.repository.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAqC;AACrC,uDAA6C;AAC7C,6CAAmD;AAI5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAEmB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAC5C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,IAAmB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAbY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACM,oBAAU;GAH9B,kBAAkB,CAa9B"}
|
||||
@@ -0,0 +1,8 @@
|
||||
import { Repository } from 'typeorm';
|
||||
import { Coop } from '../domain/coop.entity';
|
||||
import { CoopRepository } from '../domain/coop.repository';
|
||||
export declare class CoopRepositoryImpl implements CoopRepository {
|
||||
private readonly repository;
|
||||
constructor(repository: Repository<Coop>);
|
||||
findByName(name: string): Promise<Coop | undefined>;
|
||||
}
|
||||
@@ -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);
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CoopRepositoryImpl = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const typeorm_1 = require("typeorm");
|
||||
const coop_entity_1 = require("../domain/coop.entity");
|
||||
const typeorm_2 = require("@nestjs/typeorm");
|
||||
let CoopRepositoryImpl = class CoopRepositoryImpl {
|
||||
constructor(repository) {
|
||||
this.repository = repository;
|
||||
}
|
||||
async findByName(name) {
|
||||
return this.repository.findOne({ where: { name } });
|
||||
}
|
||||
};
|
||||
exports.CoopRepositoryImpl = CoopRepositoryImpl;
|
||||
exports.CoopRepositoryImpl = CoopRepositoryImpl = __decorate([
|
||||
(0, common_1.Injectable)(),
|
||||
__param(0, (0, typeorm_2.InjectRepository)(coop_entity_1.Coop)),
|
||||
__metadata("design:paramtypes", [typeorm_1.Repository])
|
||||
], CoopRepositoryImpl);
|
||||
//# sourceMappingURL=coop.repository.impl.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"coop.repository.impl.js","sourceRoot":"","sources":["../../src/infrastructure/coop.repository.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAqC;AACrC,uDAA6C;AAC7C,6CAAmD;AAI5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAEmB,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IAC5C,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AATY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACM,oBAAU;GAH9B,kBAAkB,CAS9B"}
|
||||
@@ -0,0 +1,2 @@
|
||||
export declare class DatabaseModule {
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
"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 typeorm_1 = require("@nestjs/typeorm");
|
||||
const user_entity_1 = require("../domain/user.entity");
|
||||
const card_entity_1 = require("../domain/card.entity");
|
||||
const access_request_entity_1 = require("../domain/access-request.entity");
|
||||
const coop_entity_1 = require("../domain/coop.entity");
|
||||
const user_repository_impl_1 = require("./user.repository.impl");
|
||||
const card_repository_impl_1 = require("./card.repository.impl");
|
||||
const access_request_repository_impl_1 = require("./access-request.repository.impl");
|
||||
const coop_repository_impl_1 = require("./coop.repository.impl");
|
||||
const user_repository_1 = require("../domain/user.repository");
|
||||
const card_repository_1 = require("../domain/card.repository");
|
||||
const access_request_repository_1 = require("../domain/access-request.repository");
|
||||
const coop_repository_1 = require("../domain/coop.repository");
|
||||
let DatabaseModule = class DatabaseModule {
|
||||
};
|
||||
exports.DatabaseModule = DatabaseModule;
|
||||
exports.DatabaseModule = DatabaseModule = __decorate([
|
||||
(0, common_1.Global)(),
|
||||
(0, common_1.Module)({
|
||||
imports: [
|
||||
typeorm_1.TypeOrmModule.forRoot({
|
||||
type: 'postgres',
|
||||
host: '127.0.0.1',
|
||||
port: 5432,
|
||||
username: 'postgres',
|
||||
password: 'postgres',
|
||||
database: 'cardcoop',
|
||||
synchronize: true,
|
||||
entities: [
|
||||
user_entity_1.User,
|
||||
card_entity_1.Card,
|
||||
access_request_entity_1.AccessRequest,
|
||||
coop_entity_1.Coop
|
||||
],
|
||||
}),
|
||||
typeorm_1.TypeOrmModule.forFeature([
|
||||
user_entity_1.User,
|
||||
card_entity_1.Card,
|
||||
access_request_entity_1.AccessRequest,
|
||||
coop_entity_1.Coop
|
||||
]),
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
provide: user_repository_1.USER_REPOSITORY,
|
||||
useClass: user_repository_impl_1.UserRepositoryImpl,
|
||||
},
|
||||
{
|
||||
provide: card_repository_1.CARD_REPOSITORY,
|
||||
useClass: card_repository_impl_1.CardRepositoryImpl,
|
||||
},
|
||||
{
|
||||
provide: access_request_repository_1.ACCESS_REQUEST_REPOSITORY,
|
||||
useClass: access_request_repository_impl_1.AccessRequestRepositoryImpl,
|
||||
},
|
||||
{
|
||||
provide: coop_repository_1.COOP_REPOSITORY,
|
||||
useClass: coop_repository_impl_1.CoopRepositoryImpl,
|
||||
},
|
||||
],
|
||||
exports: [
|
||||
typeorm_1.TypeOrmModule,
|
||||
user_repository_1.USER_REPOSITORY,
|
||||
card_repository_1.CARD_REPOSITORY,
|
||||
access_request_repository_1.ACCESS_REQUEST_REPOSITORY,
|
||||
coop_repository_1.COOP_REPOSITORY,
|
||||
],
|
||||
})
|
||||
], DatabaseModule);
|
||||
//# sourceMappingURL=database.module.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/infrastructure/database.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,6CAAgD;AAChD,uDAA6C;AAC7C,uDAA6C;AAC7C,2EAAgE;AAChE,uDAA6C;AAC7C,iEAA4D;AAC5D,iEAA4D;AAC5D,qFAA+E;AAC/E,iEAA4D;AAC5D,+DAA4D;AAC5D,+DAA4D;AAC5D,mFAAgF;AAChF,+DAA4D;AAsDrD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAnD1B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,OAAO,CAAC;gBACpB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE;oBACR,kBAAI;oBACJ,kBAAI;oBACJ,qCAAa;oBACb,kBAAI;iBACL;aACF,CAAC;YACF,uBAAa,CAAC,UAAU,CAAC;gBACvB,kBAAI;gBACJ,kBAAI;gBACJ,qCAAa;gBACb,kBAAI;aACL,CAAC;SACH;QACD,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,iCAAe;gBACxB,QAAQ,EAAE,yCAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,iCAAe;gBACxB,QAAQ,EAAE,yCAAkB;aAC7B;YACD;gBACE,OAAO,EAAE,qDAAyB;gBAClC,QAAQ,EAAE,4DAA2B;aACtC;YACD;gBACE,OAAO,EAAE,iCAAe;gBACxB,QAAQ,EAAE,yCAAkB;aAC7B;SACF;QACD,OAAO,EAAE;YACP,uBAAa;YACb,iCAAe;YACf,iCAAe;YACf,qDAAyB;YACzB,iCAAe;SAChB;KACF,CAAC;GACW,cAAc,CAAG"}
|
||||
@@ -0,0 +1 @@
|
||||
export declare function Swagger(description: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
||||
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Swagger = Swagger;
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
function Swagger(description) {
|
||||
return (target, propertyKey, descriptor) => {
|
||||
const operationId = propertyKey;
|
||||
const summary = propertyKey;
|
||||
(0, swagger_1.ApiOperation)({
|
||||
summary,
|
||||
description,
|
||||
operationId,
|
||||
})(target, propertyKey, descriptor);
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=swagger.decorator.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"swagger.decorator.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/swagger.decorator.ts"],"names":[],"mappings":";;AAEA,0BAWC;AAbD,6CAA+C;AAE/C,SAAgB,OAAO,CAAC,WAAmB;IACzC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QAC1E,MAAM,WAAW,GAAG,WAAW,CAAC;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC;QAE5B,IAAA,sBAAY,EAAC;YACX,OAAO;YACP,WAAW;YACX,WAAW;SACZ,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC"}
|
||||
@@ -0,0 +1,20 @@
|
||||
export declare class PrepareShareDataDto {
|
||||
coopName: string;
|
||||
}
|
||||
export declare class CoopInfoResponseDto {
|
||||
coopName: string;
|
||||
coopPublicKey: string;
|
||||
}
|
||||
export declare class ShareDataDto {
|
||||
coopName: string;
|
||||
encryptedData: string;
|
||||
}
|
||||
export declare class ShareDataResponseDto {
|
||||
ticket: string;
|
||||
}
|
||||
export declare class CoopExchangeTicketDto {
|
||||
ticket: string;
|
||||
}
|
||||
export declare class CoopJwtResponseDto {
|
||||
accessToken: string;
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
"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.CoopJwtResponseDto = exports.CoopExchangeTicketDto = exports.ShareDataResponseDto = exports.ShareDataDto = exports.CoopInfoResponseDto = exports.PrepareShareDataDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class PrepareShareDataDto {
|
||||
}
|
||||
exports.PrepareShareDataDto = PrepareShareDataDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Название кооператива',
|
||||
example: 'CoopNameXYZ',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], PrepareShareDataDto.prototype, "coopName", void 0);
|
||||
class CoopInfoResponseDto {
|
||||
}
|
||||
exports.CoopInfoResponseDto = CoopInfoResponseDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Название кооператива',
|
||||
example: 'CoopNameXYZ',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], CoopInfoResponseDto.prototype, "coopName", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Публичный ключ кооператива',
|
||||
example: 'publicKey123456789abcdef',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], CoopInfoResponseDto.prototype, "coopPublicKey", void 0);
|
||||
class ShareDataDto {
|
||||
}
|
||||
exports.ShareDataDto = ShareDataDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Название кооператива',
|
||||
example: 'CoopNameXYZ',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], ShareDataDto.prototype, "coopName", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Зашифрованные данные для передачи',
|
||||
example: 'encryptedData123456abcdef',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], ShareDataDto.prototype, "encryptedData", void 0);
|
||||
class ShareDataResponseDto {
|
||||
}
|
||||
exports.ShareDataResponseDto = ShareDataResponseDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Билет для обмена данными',
|
||||
example: 'exchangeTicket12345',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], ShareDataResponseDto.prototype, "ticket", void 0);
|
||||
class CoopExchangeTicketDto {
|
||||
}
|
||||
exports.CoopExchangeTicketDto = CoopExchangeTicketDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Билет для обмена кооперативной информацией',
|
||||
example: 'exchangeTicket12345',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], CoopExchangeTicketDto.prototype, "ticket", void 0);
|
||||
class CoopJwtResponseDto {
|
||||
}
|
||||
exports.CoopJwtResponseDto = CoopJwtResponseDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'JWT токен доступа для взаимодействия с кооперативом',
|
||||
example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], CoopJwtResponseDto.prototype, "accessToken", void 0);
|
||||
//# sourceMappingURL=access.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"access.dto.js","sourceRoot":"","sources":["../../../src/infrastructure/dto/access.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuD;AACvD,6CAA8C;AAE9C,MAAa,mBAAmB;CAQ/B;AARD,kDAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,aAAa;KACvB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACI;AAGnB,MAAa,mBAAmB;CAY/B;AAZD,kDAYC;AAPC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,aAAa;KACvB,CAAC;;qDACe;AAMjB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,0BAA0B;KACpC,CAAC;;0DACoB;AAGxB,MAAa,YAAY;CAgBxB;AAhBD,oCAgBC;AATC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,aAAa;KACvB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACI;AAQjB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,2BAA2B;KACrC,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACS;AAGxB,MAAa,oBAAoB;CAMhC;AAND,oDAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,qBAAqB;KAC/B,CAAC;;oDACa;AAGjB,MAAa,qBAAqB;CAQjC;AARD,sDAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,qBAAqB;KAC/B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAGjB,MAAa,kBAAkB;CAM9B;AAND,gDAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,yCAAyC;KACnD,CAAC;;uDACkB"}
|
||||
@@ -0,0 +1,11 @@
|
||||
export declare class IssueCardDto {
|
||||
username: string;
|
||||
encryptedData: string;
|
||||
coopName: string;
|
||||
signature: string;
|
||||
}
|
||||
export declare class CardResponseDto {
|
||||
id: string;
|
||||
username: string;
|
||||
coopName: string;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
"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.CardResponseDto = exports.IssueCardDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class IssueCardDto {
|
||||
}
|
||||
exports.IssueCardDto = IssueCardDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Имя пользователя, которому будет выдана карта',
|
||||
example: 'john_doe',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], IssueCardDto.prototype, "username", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Зашифрованные данные, связанные с картой',
|
||||
example: 'encryptedData123456abcdef',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], IssueCardDto.prototype, "encryptedData", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Название кооператива',
|
||||
example: 'CoopNameXYZ',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], IssueCardDto.prototype, "coopName", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Цифровая подпись для проверки данных',
|
||||
example: 'signatureBase64Encoded12345',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
(0, class_validator_1.IsNotEmpty)(),
|
||||
__metadata("design:type", String)
|
||||
], IssueCardDto.prototype, "signature", void 0);
|
||||
class CardResponseDto {
|
||||
}
|
||||
exports.CardResponseDto = CardResponseDto;
|
||||
//# sourceMappingURL=card.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"card.dto.js","sourceRoot":"","sources":["../../../src/infrastructure/dto/card.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuD;AACvD,6CAA8C;AAE9C,MAAa,YAAY;CAgCxB;AAhCD,oCAgCC;AAzBC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACI;AAQjB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,2BAA2B;KACrC,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACS;AAQtB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,aAAa;KACvB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACI;AAQjB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,6BAA6B;KACvC,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACK;AAIpB,MAAa,eAAe;CAI3B;AAJD,0CAIC"}
|
||||
@@ -0,0 +1,20 @@
|
||||
export declare class InitiateRegistrationDto {
|
||||
email: string;
|
||||
}
|
||||
export declare class CompleteRegistrationDto {
|
||||
email: string;
|
||||
hashKey: string;
|
||||
uuid: string;
|
||||
}
|
||||
export declare class InitiateLoginDto {
|
||||
email: string;
|
||||
}
|
||||
export declare class CompleteLoginDto {
|
||||
email: string;
|
||||
hashKey: string;
|
||||
uuid: string;
|
||||
}
|
||||
export declare class UserResponseDto {
|
||||
accessToken: string;
|
||||
refreshToken: string;
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
"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.UserResponseDto = exports.CompleteLoginDto = exports.InitiateLoginDto = exports.CompleteRegistrationDto = exports.InitiateRegistrationDto = void 0;
|
||||
const class_validator_1 = require("class-validator");
|
||||
const swagger_1 = require("@nestjs/swagger");
|
||||
class InitiateRegistrationDto {
|
||||
}
|
||||
exports.InitiateRegistrationDto = InitiateRegistrationDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Email пользователя',
|
||||
example: 'user@example.com',
|
||||
}),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], InitiateRegistrationDto.prototype, "email", void 0);
|
||||
class CompleteRegistrationDto {
|
||||
}
|
||||
exports.CompleteRegistrationDto = CompleteRegistrationDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Email пользователя',
|
||||
example: 'user@example.com',
|
||||
}),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteRegistrationDto.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Хэш-ключ для завершения регистрации',
|
||||
example: 'secureHash123',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteRegistrationDto.prototype, "hashKey", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Уникальный идентификатор запроса',
|
||||
example: 'uuid-123e4567-e89b-12d3-a456-426614174000',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteRegistrationDto.prototype, "uuid", void 0);
|
||||
class InitiateLoginDto {
|
||||
}
|
||||
exports.InitiateLoginDto = InitiateLoginDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Email пользователя',
|
||||
example: 'user@example.com',
|
||||
}),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], InitiateLoginDto.prototype, "email", void 0);
|
||||
class CompleteLoginDto {
|
||||
}
|
||||
exports.CompleteLoginDto = CompleteLoginDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Email пользователя',
|
||||
example: 'user@example.com',
|
||||
}),
|
||||
(0, class_validator_1.IsEmail)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteLoginDto.prototype, "email", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Хэш-ключ для завершения входа',
|
||||
example: 'secureHash123',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteLoginDto.prototype, "hashKey", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Уникальный идентификатор запроса',
|
||||
example: 'uuid-123e4567-e89b-12d3-a456-426614174000',
|
||||
}),
|
||||
(0, class_validator_1.IsString)(),
|
||||
__metadata("design:type", String)
|
||||
], CompleteLoginDto.prototype, "uuid", void 0);
|
||||
class UserResponseDto {
|
||||
}
|
||||
exports.UserResponseDto = UserResponseDto;
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Токен доступа для авторизации',
|
||||
example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], UserResponseDto.prototype, "accessToken", void 0);
|
||||
__decorate([
|
||||
(0, swagger_1.ApiProperty)({
|
||||
description: 'Токен для обновления доступа',
|
||||
example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
|
||||
}),
|
||||
__metadata("design:type", String)
|
||||
], UserResponseDto.prototype, "refreshToken", void 0);
|
||||
//# sourceMappingURL=user.dto.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/infrastructure/dto/user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAgE;AAChE,6CAA8C;AAE9C,MAAa,uBAAuB;CAOnC;AAPD,0DAOC;AADC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,yBAAO,GAAE;;sDACI;AAGhB,MAAa,uBAAuB;CAqBnC;AArBD,0DAqBC;AAfC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,yBAAO,GAAE;;sDACI;AAOd;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,eAAe;KACzB,CAAC;IACD,IAAA,0BAAQ,GAAE;;wDACK;AAOhB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,2CAA2C;KACrD,CAAC;IACD,IAAA,0BAAQ,GAAE;;qDACE;AAGf,MAAa,gBAAgB;CAO5B;AAPD,4CAOC;AADC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,yBAAO,GAAE;;+CACI;AAGhB,MAAa,gBAAgB;CAqB5B;AArBD,4CAqBC;AAfC;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,yBAAO,GAAE;;+CACI;AAOd;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,eAAe;KACzB,CAAC;IACD,IAAA,0BAAQ,GAAE;;iDACK;AAOhB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,2CAA2C;KACrD,CAAC;IACD,IAAA,0BAAQ,GAAE;;8CACE;AAGf,MAAa,eAAe;CAY3B;AAZD,0CAYC;AAPC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,yCAAyC;KACnD,CAAC;;oDACkB;AAMpB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,yCAAyC;KACnD,CAAC;;qDACmB"}
|
||||
@@ -0,0 +1,4 @@
|
||||
declare const CoopJwtAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
|
||||
export declare class CoopJwtAuthGuard extends CoopJwtAuthGuard_base {
|
||||
}
|
||||
export {};
|
||||
@@ -0,0 +1,18 @@
|
||||
"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.CoopJwtAuthGuard = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const passport_1 = require("@nestjs/passport");
|
||||
let CoopJwtAuthGuard = class CoopJwtAuthGuard extends (0, passport_1.AuthGuard)('coop-jwt') {
|
||||
};
|
||||
exports.CoopJwtAuthGuard = CoopJwtAuthGuard;
|
||||
exports.CoopJwtAuthGuard = CoopJwtAuthGuard = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], CoopJwtAuthGuard);
|
||||
//# sourceMappingURL=coop-jwt-auth.guard.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"coop-jwt-auth.guard.js","sourceRoot":"","sources":["../../../src/infrastructure/guards/coop-jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA6C;AAGtC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,IAAA,oBAAS,EAAC,UAAU,CAAC;CAAG,CAAA;AAAjD,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;GACA,gBAAgB,CAAiC"}
|
||||
@@ -0,0 +1,4 @@
|
||||
declare const JwtAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
|
||||
export declare class JwtAuthGuard extends JwtAuthGuard_base {
|
||||
}
|
||||
export {};
|
||||
@@ -0,0 +1,18 @@
|
||||
"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.JwtAuthGuard = void 0;
|
||||
const common_1 = require("@nestjs/common");
|
||||
const passport_1 = require("@nestjs/passport");
|
||||
let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
|
||||
};
|
||||
exports.JwtAuthGuard = JwtAuthGuard;
|
||||
exports.JwtAuthGuard = JwtAuthGuard = __decorate([
|
||||
(0, common_1.Injectable)()
|
||||
], JwtAuthGuard);
|
||||
//# sourceMappingURL=jwt-auth.guard.js.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../src/infrastructure/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA6C;AAGtC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;CAAG,CAAA;AAAxC,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAA4B"}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user