Skip to content

Commit

Permalink
Modify single-quotes to be double-quotes
Browse files Browse the repository at this point in the history
  • Loading branch information
QuantGeekDev committed Jan 4, 2024
1 parent 9499db7 commit 3a176c0
Show file tree
Hide file tree
Showing 14 changed files with 82 additions and 88 deletions.
44 changes: 22 additions & 22 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"scripts": {
"compile": "tsc",
"postcompile": "cp -r src/locales dist",
"bg:start": "npm run prepare && pm2 start dist/index.js --name propertygram-bot",
"bg:start": "npm run prepare && pm2 start dist/index.js --name propertygram-bot -f",
"bg:restart": "npm run prepare && pm2 restart propertygram-bot",
"bg:logs": "pm2 logs telegram-bot --lines 1000 -f",
"start": "npm run compile && node .",
Expand Down
32 changes: 15 additions & 17 deletions propertiesSampleData.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
{
"property": {
"collection": "SaliSol Hills",
"name": "Villa 6",
"price": 670000,
"availability": true,
"videoUrl": "https://www.dropbox.com/sh/t6330gcog0lz7dh/AADqYOkfEnvIQ0RF6Lr0eRBja?dl=0&preview=Video+1+SaliSol+Hills+Showhouse+2023.mp4",
"thumbnailUrl": "https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png",
"albumUrls": [
"https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png",
"https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png"
],
"builtMetersSquared": 168,
"plotMetersSquared": 532,
"dropboxUrl": "https://www.dropbox.com/sh/t6330gcog0lz7dh/AADqYOkfEnvIQ0RF6Lr0eRBja?dl=0",
"telegramContactUrl": "https://t.me/PropertyGram_bot",
"websiteUrl": "https://salisolpark.com/salisol-hills"
}
"collection": "SaliSol Hills",
"name": "Villa 6",
"price": 670000,
"availability": true,
"videoUrl": "https://www.dropbox.com/sh/t6330gcog0lz7dh/AADqYOkfEnvIQ0RF6Lr0eRBja?dl=0&preview=Video+1+SaliSol+Hills+Showhouse+2023.mp4",
"thumbnailUrl": "https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png",
"albumUrls": [
"https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png",
"https://uc470239d7d0c1c41f915323d5c8.previews.dropboxusercontent.com/p/thumb/ACLJ7D6O6bqDe2gRpcdVMDPaxNwZYWAenzJD8IQuZKGoaWdojbcZHMHHw0X-6CUmisfriGocNXvxH1tLSty6kEh3PftuhgeMPVUlQuhD7KmGYWfmqnWQKPY9bwnKjU-qxJJv7c2StyA_xn6H4l4MCTF0dWVHalbKeTT5aW5ucsm5f6raAcqCXx7mRQto9AkM3lHzDi8dw7imp65me_EFKUmEziFK108IecRwKQ1KZdNWrjVIuAcaIyGzq51l--Kphv6rh9tHaSXx0DMv_MX0vtYbL751cve0h9YGrvGPnFUMKhP6oPqXAFzLnSJCc3qnbzfaGuaWeI7sjBLh5-MXtt8JTZfsU8-om8Kv1k0gtPF4dg/p.png"
],
"builtMetersSquared": 168,
"plotMetersSquared": 532,
"dropboxUrl": "https://www.dropbox.com/sh/t6330gcog0lz7dh/AADqYOkfEnvIQ0RF6Lr0eRBja?dl=0",
"telegramContactUrl": "https://t.me/PropertyGram_bot",
"websiteUrl": "https://salisolpark.com/salisol-hills"
}
30 changes: 16 additions & 14 deletions src/config/bot.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
import type { I18n } from '@grammyjs/i18n/dist/source/i18n.js';
import { Bot as TelegramBot, session } from 'grammy';
import type { I18n } from "@grammyjs/i18n/dist/source/i18n.js";
import { Bot as TelegramBot, session } from "grammy";

import { resolvePath } from '../helpers/resolve-path.js';
import { createReplyWithTextFunc } from '../services/context.js';
import type { CustomContext } from '../types/context.js';
import type { Chat, Database } from '../types/database.js';
import { initLocaleEngine } from './locale-engine.js';
import { startController } from '../controllers/start.js';
import { stopController } from '../controllers/stop.js';
import type { Bot } from '../types/telegram.js';
import { buildName, getOrCreatePlayer } from '../services/user.js';
import { getOrCreateChat } from '../services/chat.js';
import { resolvePath } from "../helpers/resolve-path.js";
import { createReplyWithTextFunc } from "../services/context.js";
import type { CustomContext } from "../types/context.js";
import type { Chat, Database } from "../types/database.js";
import { initLocaleEngine } from "./locale-engine.js";
import { startController } from "../controllers/start.js";
import { stopController } from "../controllers/stop.js";
import type { Bot } from "../types/telegram.js";
import { buildName, getOrCreatePlayer } from "../services/user.js";
import { getOrCreateChat } from "../services/chat.js";
import { propertiesController } from "../controllers/properties.js";

function extendContext(bot: Bot, database: Database) {
bot.use(async (ctx, next) => {
Expand All @@ -22,7 +23,7 @@ function extendContext(bot: Bot, database: Database) {
ctx.db = database;

let chat: Chat | null = null;
if (ctx.chat.type !== 'private') {
if (ctx.chat.type !== "private") {
chat = await getOrCreateChat({
db: database,
chatId: ctx.chat.id,
Expand Down Expand Up @@ -52,10 +53,11 @@ function setupMiddlewares(bot: Bot, localeEngine: I18n) {
function setupControllers(bot: Bot) {
bot.use(startController);
bot.use(stopController);
bot.use(propertiesController);
}

export async function startBot(database: Database) {
const localesPath = resolvePath(import.meta.url, '../locales');
const localesPath = resolvePath(import.meta.url, "../locales");
const i18n = initLocaleEngine(localesPath);
const bot = new TelegramBot<CustomContext>(process.env.TELEGRAM_TOKEN);
extendContext(bot, database);
Expand Down
2 changes: 1 addition & 1 deletion src/config/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export async function connectToDb() {
const mongoDb = client.db();
const user = mongoDb.collection<User>("user");
const chat = mongoDb.collection<Chat>("chat");
const property = mongoDb.collection<Property>("property");
const property = mongoDb.collection<Property>("properties");
const database: Database = { user, chat, property };
return database;
}
10 changes: 5 additions & 5 deletions src/controllers/start.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Composer } from 'grammy';
import type { CustomContext } from '../types/context.js';
import { Composer } from "grammy";
import type { CustomContext } from "../types/context.js";

export const startController = new Composer<CustomContext>();
startController.command('start', async ctx => {
await ctx.text('start', {
startController.command("start", async ctx => {
await ctx.text("start", {
name: ctx.entities.user.name,
chatName: ctx.entities.chat?.title ?? 'PM'
chatName: ctx.entities.chat?.title ?? "PM"
});
});
10 changes: 5 additions & 5 deletions src/controllers/stop.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Composer } from 'grammy';
import type { CustomContext } from '../types/context.js';
import { Composer } from "grammy";
import type { CustomContext } from "../types/context.js";

export const stopController = new Composer<CustomContext>();
stopController.command('stop', async ctx => {
await ctx.text('stop', {
stopController.command("stop", async ctx => {
await ctx.text("stop", {
name: ctx.entities.user.name,
chatName: ctx.entities.chat?.title ?? 'PM'
chatName: ctx.entities.chat?.title ?? "PM"
});
});
10 changes: 5 additions & 5 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { startApp } from './config/app.js';
import debugCreator from 'debug';
import { startApp } from "./config/app.js";
import debugCreator from "debug";

const debug = debugCreator('index:');
const debug = debugCreator("index:");

debug('Starting App');
debug("Starting App");
startApp();
debug('App started');
debug("App started");
Empty file removed src/models/Property.ts
Empty file.
4 changes: 2 additions & 2 deletions src/services/chat.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Chat, Database } from '../types/database.js';
import type { Chat, Database } from "../types/database.js";

async function createChat(args: {
db: Database;
Expand All @@ -23,7 +23,7 @@ export async function getOrCreateChat(args: {
const chat = await args.db.chat.findOneAndUpdate(
{ chatId: args.chatId },
{ $set: { title: args.title } },
{ returnDocument: 'after' }
{ returnDocument: "after" }
);

if (chat.ok && chat.value) {
Expand Down
7 changes: 3 additions & 4 deletions src/services/context.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import type { CustomContext, CustomContextMethods } from '../types/context.js';
import type { CustomContext, CustomContextMethods } from "../types/context.js";

export function createReplyWithTextFunc(
ctx: CustomContext
): CustomContextMethods['text'] {
): CustomContextMethods["text"] {
return (resourceKey, templateData, extra = {}) => {
extra.parse_mode = 'HTML';
extra.disable_web_page_preview = true;
extra.parse_mode = "HTML";
const text = ctx.i18n.t(resourceKey, templateData);
return ctx.reply(text, extra);
};
Expand Down
4 changes: 2 additions & 2 deletions src/services/user.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Database, User } from '../types/database.js';
import type { Database, User } from "../types/database.js";

export function buildName(firstName: string, lastName?: string) {
return lastName ? `${firstName} ${lastName}` : firstName;
Expand Down Expand Up @@ -27,7 +27,7 @@ export async function getOrCreatePlayer(args: {
const user = await args.db.user.findOneAndUpdate(
{ userId: args.userId },
{ $set: { name: args.name } },
{ returnDocument: 'after' }
{ returnDocument: "after" }
);

if (user.ok && user.value) {
Expand Down
10 changes: 5 additions & 5 deletions src/types/context.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { Context, SessionFlavor } from 'grammy';
import type { I18nContextFlavor, TemplateData } from '@grammyjs/i18n';
import type { Extra } from './telegram.js';
import type { Chat, Database, User } from './database.js';
import type { Context, SessionFlavor } from "grammy";
import type { I18nContextFlavor, TemplateData } from "@grammyjs/i18n";
import type { Extra } from "./telegram.js";
import type { Chat, Database, User } from "./database.js";

export interface Custom<C extends Context> {
text: (
text: string,
templateData?: TemplateData,
extra?: Extra
) => ReturnType<C['reply']>;
) => ReturnType<C["reply"]>;

entities: {
user: User;
Expand Down
5 changes: 0 additions & 5 deletions src/types/repository.ts

This file was deleted.

0 comments on commit 3a176c0

Please sign in to comment.