From 1810c550ba2ce2d78adae80d29236a7b0470b5dd Mon Sep 17 00:00:00 2001 From: Vasilii Mikhailovskii Date: Tue, 10 Dec 2024 13:21:38 +0200 Subject: [PATCH] create qr-codes by tg bot --- apps/frontend/.env | 2 +- apps/frontend/.env.development | 1 + apps/frontend/.gitignore | 2 +- apps/frontend/package.json | 4 +- apps/frontend/src/api/dbs.ts | 4 +- apps/frontend/src/api/qrCode.ts | 5 +- .../src/components/chat/ChatMessages.vue | 2 +- .../create/CreatePlacementSection.vue | 2 +- .../components/manage/QRCodePlacementIcon.vue | 2 +- .../src/stores/usePrefersColorSchemeStore.ts | 2 +- apps/frontend/vite.config.ts | 9 + package.json | 2 +- packages/constants/.gitignore | 1 + packages/constants/package.json | 26 + packages/constants/src/EPOCH.ts | 1 + packages/constants/src/index.ts | 2 + .../constants/src}/qrCodePlacements.ts | 0 packages/constants/tsconfig.json | 14 + packages/couchdb-changes-stream/package.json | 8 +- .../lib-service-health-checkserver/.gitignore | 1 + .../package.json | 21 + .../src/health-server.ts | 0 .../tsconfig.json | 10 + packages/lib-service-seq-tracker/.gitignore | 1 + packages/lib-service-seq-tracker/package.json | 22 + .../src/serviceSeqTracker.ts | 24 +- .../lib-service-seq-tracker/tsconfig.json | 10 + packages/tg-bot-webhook-ddoc/dist/index.d.ts | 1 + packages/tg-bot-webhook-ddoc/dist/index.js | 18 + .../tg-bot-webhook-ddoc/dist/index.js.map | 1 + packages/tg-bot-webhook-ddoc/dist/types.d.ts | 16 + packages/tg-bot-webhook-ddoc/dist/types.js | 3 + .../tg-bot-webhook-ddoc/dist/types.js.map | 1 + .../dist/updates/saveUpdate.d.ts | 22 + .../dist/updates/saveUpdate.js | 23 + .../dist/updates/saveUpdate.js.map | 1 + .../tg-bot-webhook-ddoc/eslint.config.mjs | 25 + packages/tg-bot-webhook-ddoc/package.json | 36 + packages/tg-bot-webhook-ddoc/src/index.ts | 1 + packages/tg-bot-webhook-ddoc/src/types.ts | 19 + .../src/updates/saveUpdate.ts | 52 + packages/tg-bot-webhook-ddoc/tsconfig.json | 15 + packages/types/package.json | 14 +- .../types/src/DBDocuments/QRCodeDocument.ts | 5 +- .../types/src/DBDocuments/UserDocument.ts | 17 +- packages/types/tsconfig.json | 11 +- pnpm-lock.yaml | 3137 +++++++---------- .../migrations/1732483677017-dbs.js | 6 +- .../migrations/1733947592549-indexes.js | 60 + .../Dockerfile | 2 +- .../package.json | 6 +- .../src/{server.ts => service.ts} | 7 +- .../tsc-alias.config.json | 3 + .../tsconfig.json | 28 +- services/tg-bot/.dockerignore | 3 + services/tg-bot/.gitignore | 1 + services/tg-bot/Dockerfile | 8 + services/tg-bot/assets/logo.svg | 1 + services/tg-bot/esbuild.config.js | 25 + services/tg-bot/package.json | 74 + services/tg-bot/src/PouchDB.ts | 8 + services/tg-bot/src/api/qrCodes.ts | 92 + services/tg-bot/src/api/users.ts | 76 + .../src/bot/actions/manageMenuActions.ts | 48 + .../tg-bot/src/bot/actions/qrCodeActions.ts | 78 + services/tg-bot/src/bot/callbackHandlers.ts | 27 + services/tg-bot/src/bot/commands/help.ts | 11 + services/tg-bot/src/bot/commands/manage.ts | 44 + services/tg-bot/src/bot/commands/new.ts | 7 + .../tg-bot/src/bot/commands/setupCommands.ts | 37 + services/tg-bot/src/bot/commands/start.ts | 23 + .../conversations/newQRCodeConversation.ts | 116 + services/tg-bot/src/bot/index.ts | 45 + .../tg-bot/src/bot/middleware/loadUser.ts | 36 + services/tg-bot/src/bot/utils/keyboards.ts | 35 + services/tg-bot/src/config/env.ts | 12 + services/tg-bot/src/dbs.ts | 108 + services/tg-bot/src/models/types.ts | 2 + services/tg-bot/src/old_bot.ts | 109 + services/tg-bot/src/service.ts | 91 + services/tg-bot/src/services/qrGenerator.ts | 95 + services/tg-bot/src/setup/setupWebHook.ts | 23 + .../src/setup/setupWebhookDesignDocument.ts | 68 + services/tg-bot/src/types.ts | 27 + services/tg-bot/src/types/myContext.ts | 19 + services/tg-bot/src/utils/date.ts | 4 + .../src/utils/images/svg/addLabelToSvg.ts | 61 + .../images/svg/calculateFontSizeForText.ts | 36 + .../src/utils/images/svg/optimizeSvg.ts | 25 + .../src/utils/images/svg/replaceFillInSvg.ts | 23 + services/tg-bot/tsconfig.json | 20 + 91 files changed, 3317 insertions(+), 1909 deletions(-) create mode 100644 packages/constants/.gitignore create mode 100644 packages/constants/package.json create mode 100644 packages/constants/src/EPOCH.ts create mode 100644 packages/constants/src/index.ts rename {apps/frontend/src/constants => packages/constants/src}/qrCodePlacements.ts (100%) create mode 100644 packages/constants/tsconfig.json create mode 100644 packages/lib-service-health-checkserver/.gitignore create mode 100644 packages/lib-service-health-checkserver/package.json rename {services/message-delivery-method-web-push => packages/lib-service-health-checkserver}/src/health-server.ts (100%) create mode 100644 packages/lib-service-health-checkserver/tsconfig.json create mode 100644 packages/lib-service-seq-tracker/.gitignore create mode 100644 packages/lib-service-seq-tracker/package.json rename {services/message-delivery-method-web-push => packages/lib-service-seq-tracker}/src/serviceSeqTracker.ts (56%) create mode 100644 packages/lib-service-seq-tracker/tsconfig.json create mode 100644 packages/tg-bot-webhook-ddoc/dist/index.d.ts create mode 100644 packages/tg-bot-webhook-ddoc/dist/index.js create mode 100644 packages/tg-bot-webhook-ddoc/dist/index.js.map create mode 100644 packages/tg-bot-webhook-ddoc/dist/types.d.ts create mode 100644 packages/tg-bot-webhook-ddoc/dist/types.js create mode 100644 packages/tg-bot-webhook-ddoc/dist/types.js.map create mode 100644 packages/tg-bot-webhook-ddoc/dist/updates/saveUpdate.d.ts create mode 100644 packages/tg-bot-webhook-ddoc/dist/updates/saveUpdate.js create mode 100644 packages/tg-bot-webhook-ddoc/dist/updates/saveUpdate.js.map create mode 100644 packages/tg-bot-webhook-ddoc/eslint.config.mjs create mode 100644 packages/tg-bot-webhook-ddoc/package.json create mode 100644 packages/tg-bot-webhook-ddoc/src/index.ts create mode 100644 packages/tg-bot-webhook-ddoc/src/types.ts create mode 100644 packages/tg-bot-webhook-ddoc/src/updates/saveUpdate.ts create mode 100644 packages/tg-bot-webhook-ddoc/tsconfig.json create mode 100644 services/db-migrations/migrations/1733947592549-indexes.js rename services/message-delivery-method-web-push/src/{server.ts => service.ts} (97%) create mode 100644 services/message-delivery-method-web-push/tsc-alias.config.json create mode 100644 services/tg-bot/.dockerignore create mode 100644 services/tg-bot/.gitignore create mode 100644 services/tg-bot/Dockerfile create mode 100644 services/tg-bot/assets/logo.svg create mode 100644 services/tg-bot/esbuild.config.js create mode 100644 services/tg-bot/package.json create mode 100644 services/tg-bot/src/PouchDB.ts create mode 100644 services/tg-bot/src/api/qrCodes.ts create mode 100644 services/tg-bot/src/api/users.ts create mode 100644 services/tg-bot/src/bot/actions/manageMenuActions.ts create mode 100644 services/tg-bot/src/bot/actions/qrCodeActions.ts create mode 100644 services/tg-bot/src/bot/callbackHandlers.ts create mode 100644 services/tg-bot/src/bot/commands/help.ts create mode 100644 services/tg-bot/src/bot/commands/manage.ts create mode 100644 services/tg-bot/src/bot/commands/new.ts create mode 100644 services/tg-bot/src/bot/commands/setupCommands.ts create mode 100644 services/tg-bot/src/bot/commands/start.ts create mode 100644 services/tg-bot/src/bot/conversations/newQRCodeConversation.ts create mode 100644 services/tg-bot/src/bot/index.ts create mode 100644 services/tg-bot/src/bot/middleware/loadUser.ts create mode 100644 services/tg-bot/src/bot/utils/keyboards.ts create mode 100644 services/tg-bot/src/config/env.ts create mode 100644 services/tg-bot/src/dbs.ts create mode 100644 services/tg-bot/src/models/types.ts create mode 100644 services/tg-bot/src/old_bot.ts create mode 100644 services/tg-bot/src/service.ts create mode 100644 services/tg-bot/src/services/qrGenerator.ts create mode 100644 services/tg-bot/src/setup/setupWebHook.ts create mode 100644 services/tg-bot/src/setup/setupWebhookDesignDocument.ts create mode 100644 services/tg-bot/src/types.ts create mode 100644 services/tg-bot/src/types/myContext.ts create mode 100644 services/tg-bot/src/utils/date.ts create mode 100644 services/tg-bot/src/utils/images/svg/addLabelToSvg.ts create mode 100644 services/tg-bot/src/utils/images/svg/calculateFontSizeForText.ts create mode 100644 services/tg-bot/src/utils/images/svg/optimizeSvg.ts create mode 100644 services/tg-bot/src/utils/images/svg/replaceFillInSvg.ts create mode 100644 services/tg-bot/tsconfig.json diff --git a/apps/frontend/.env b/apps/frontend/.env index 7a96bd1..ac73ac1 100644 --- a/apps/frontend/.env +++ b/apps/frontend/.env @@ -1,2 +1,2 @@ -VITE_API_URL=https://hereconnect.condev.ru/api +VITE_API_URL=/api VITE_READ_BASE_URL=https://r.condev.ru diff --git a/apps/frontend/.env.development b/apps/frontend/.env.development index 7b622b3..0ec8864 100644 --- a/apps/frontend/.env.development +++ b/apps/frontend/.env.development @@ -1,2 +1,3 @@ VITE_MANIFEST_NAME=НаСвязи-dev VITE_MANIFEST_SHORT_NAME=НаСвязи-dev +VITE_PROXY_API_URL=https://hereconnect.condev.ru/api diff --git a/apps/frontend/.gitignore b/apps/frontend/.gitignore index c1f5067..e800227 100644 --- a/apps/frontend/.gitignore +++ b/apps/frontend/.gitignore @@ -12,7 +12,7 @@ node_modules dist dist-ssr coverage -.env.local +.env.development.local /cypress/videos/ /cypress/screenshots/ diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 883e0d2..134815d 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -12,12 +12,14 @@ "test:e2e": "playwright test", "build-only": "vite build", "type-check": "vue-tsc --build --force", - "lint": "eslint . --fix", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "format": "prettier --write src/", "vite-bundle-visualizer": "npx vite-bundle-visualizer" }, "dependencies": { "@f3ve/vue-markdown-it": "^0.2.3", + "@hereconnect/constants": "workspace:^", "@hereconnect/types": "^1.0.0", "@primevue/forms": "^4.2.1", "@primevue/themes": "^4.2.1", diff --git a/apps/frontend/src/api/dbs.ts b/apps/frontend/src/api/dbs.ts index 335b86d..f095dd2 100644 --- a/apps/frontend/src/api/dbs.ts +++ b/apps/frontend/src/api/dbs.ts @@ -12,7 +12,9 @@ import type { import { DB_NAMES } from '@/constants/dbNames' export const getRemoteDb = (dbName: DB_NAMES) => - new PouchDB(`${import.meta.env.VITE_API_URL}/${dbName}`, { skip_setup: true }) + new PouchDB(new URL(`${import.meta.env.VITE_API_URL}/${dbName}`, location.origin).toString(), { + skip_setup: true, + }) export const getLocalDb = (dbName: DB_NAMES) => new PouchDB(dbName) diff --git a/apps/frontend/src/api/qrCode.ts b/apps/frontend/src/api/qrCode.ts index 9164517..104460d 100644 --- a/apps/frontend/src/api/qrCode.ts +++ b/apps/frontend/src/api/qrCode.ts @@ -1,18 +1,17 @@ import type { QRCodeDocument } from '@hereconnect/types' +import { EPOCH } from '@hereconnect/constants' import { qrCodeDbLocal, qrCodeDbRemote } from '@/api/dbs' import { getUserUuid } from '@/utils/getUserUuid' import { getBrowserUuid } from '@/utils/getBrowserUuid' import { isNotFoundError } from '@/api/PouchDB' -const EPOHE = 1731661630981 - export const createQrCodeDocument = async ( qrCodeDocPartial: Pick< QRCodeDocument, 'name' | 'placement' | 'actions' | 'predefinedMessages' | 'messageDeliveryMethod' >, ) => { - const uri = Math.abs(Date.now() - EPOHE).toString(36) + const uri = Math.abs(Date.now() - EPOCH).toString(36) const url = new URL( `${import.meta.env.VITE_READ_BASE_URL || '/read'}/${uri}`, location.origin, diff --git a/apps/frontend/src/components/chat/ChatMessages.vue b/apps/frontend/src/components/chat/ChatMessages.vue index 35fe4c3..4008039 100644 --- a/apps/frontend/src/components/chat/ChatMessages.vue +++ b/apps/frontend/src/components/chat/ChatMessages.vue @@ -33,7 +33,7 @@