From e1bceb8bd16ebbf4c546c802bb4d653f4304fc72 Mon Sep 17 00:00:00 2001 From: nk Date: Mon, 8 Jun 2026 13:55:44 +0300 Subject: [PATCH] =?UTF-8?q?feat(privacy):=20=D1=81=D1=82=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=86=D0=B0=20=D0=BF=D0=BE=D0=BB=D0=B8=D1=82=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B4=D0=B5=D0=BD=D1=86?= =?UTF-8?q?=D0=B8=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=20/privacy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 2 + src/privacy/privacy.controller.ts | 88 +++++++++++++++++++++++++++++++ src/privacy/privacy.module.ts | 5 ++ 3 files changed, 95 insertions(+) create mode 100644 src/privacy/privacy.controller.ts create mode 100644 src/privacy/privacy.module.ts diff --git a/src/app.module.ts b/src/app.module.ts index eacc2fa..1be27b9 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -10,6 +10,7 @@ import { HealthCheckModule } from './health-check/health-check.module'; import { ChartsModule } from './charts/charts.module'; import { AppVersionModule } from './app-version/app-version.module'; import { ShazamModule } from './shazam/shazam.module'; +import { PrivacyModule } from './privacy/privacy.module'; @Module({ imports: [ @@ -24,6 +25,7 @@ import { ShazamModule } from './shazam/shazam.module'; ChartsModule, AppVersionModule, ShazamModule, + PrivacyModule, ], }) export class AppModule {} diff --git a/src/privacy/privacy.controller.ts b/src/privacy/privacy.controller.ts new file mode 100644 index 0000000..d92b232 --- /dev/null +++ b/src/privacy/privacy.controller.ts @@ -0,0 +1,88 @@ +import { Controller, Get, Header } from '@nestjs/common'; + +// Статическая страница политики конфиденциальности (для карточки RuStore). +// HTML хранится константой — без внешних файлов, чтобы не зависеть от копирования +// ассетов в Docker-образ. +const PRIVACY_HTML = ` + + + + +Политика конфиденциальности radiOLA + + + +

Политика конфиденциальности приложения radiOLA

+

Дата вступления в силу: 8 июня 2026 г.

+ +

Настоящая Политика описывает, какие данные обрабатывает мобильное приложение +radiOLA («Приложение»), с какой целью и как вы можете ими управлять. Используя +Приложение, вы соглашаетесь с условиями настоящей Политики.

+ +

1. Какие данные мы обрабатываем

+ +

Приложение не собирает ваши контакты, геолокацию, СМС и не отслеживает вас +в других приложениях.

+ +

2. Сторонние сервисы

+ + +

3. Цели обработки

+

Данные обрабатываются исключительно для работы функций Приложения: воспроизведение +радио, синхронизация избранного и истории, распознавание треков, отображение обложек и +исправление технических ошибок. Мы не продаём и не передаём ваши данные третьим лицам +в рекламных целях.

+ +

4. Хранение и удаление

+

Локальные данные (история, настройки) хранятся на вашем устройстве и удаляются при +удалении Приложения или очистке его данных. Данные аккаунта на сервере хранятся, пока +существует аккаунт. Вы можете запросить удаление аккаунта и связанных данных, написав +нам (см. контакты ниже).

+ +

5. Изменения политики

+

Мы можем обновлять настоящую Политику. Актуальная версия всегда доступна по этому +адресу.

+ +

6. Контакты

+

По вопросам обработки персональных данных и для запроса на их удаление: +blinnafeg@gmail.com.

+ + + +`; + +@Controller() +export class PrivacyController { + @Get('privacy') + @Header('Content-Type', 'text/html; charset=utf-8') + getPrivacy(): string { + return PRIVACY_HTML; + } +} diff --git a/src/privacy/privacy.module.ts b/src/privacy/privacy.module.ts new file mode 100644 index 0000000..fa1cc3f --- /dev/null +++ b/src/privacy/privacy.module.ts @@ -0,0 +1,5 @@ +import { Module } from '@nestjs/common'; +import { PrivacyController } from './privacy.controller'; + +@Module({ controllers: [PrivacyController] }) +export class PrivacyModule {}