Skip to content

Commit

Permalink
Merge pull request #38 from razrabs-media/issue/35_help-command
Browse files Browse the repository at this point in the history
issue(35): adds /help command
  • Loading branch information
marylorian authored Aug 2, 2023
2 parents 4d03774 + 58c7864 commit e48544c
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/constants/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ export const ActionButtonLabels: Record<BotActions, string> = {

export enum BotCommands {
Template = "template",
Help = "help",
}

export const BotCommandDescription: Record<BotCommands, string> = {
[BotCommands.Template]: "Показывает шаблон вакансии",
[BotCommands.Help]: "Как работать с ботом",
};
38 changes: 38 additions & 0 deletions src/constants/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,41 @@ export const vacancyTemplateHTMLMessageText =
`<strong>${VacancyFieldLabel.Description}</strong>: Всё, что описывает вакансию, обязанности и предложения`;

export const vacancyLimitExceededMessageText = `Достигнут лимит бесплатных публикаций в этом месяце. Свяжись с @${config.botConsultantUsername} чтобы разместить больше`;

export const helpMessageText =
`Привет! Я готов помочь тебе опубликовать вакансию в нашем канале. ` +
`Для этого, пожалуйста, отправь мне следующую информацию о вакансии:` +
`\n` +
`1. Кому: (укажите искомого специалиста)\n` +
`2. Опыт работы: (укажите требуемый опыт работы)\n` +
`3. З/П: (укажите зарплатный диапазон, например, "от $5 000 net")\n` +
`4. Компания: (укажите название компании, которая осуществляет поиск)\n` +
`5. Процесс найма: (опишите процесс найма, если есть особые этапы или требования)\n` +
`6. Описание: (дайте подробное описание вакансии)\n` +
`\n` +
`Пример вакансии:\n` +
`<code>` +
`Кому: Middle Frontend Developer\n` +
`Опыт работы: от 2 лет\n` +
`З/П: от 200 000 рублей\n` +
`Компания: MyITCompany\n` +
`Процесс найма: 1. Отправка резюме, 2. Техническое интервью, 3. Собеседование с руководителем\n` +
`\n` +
`Мы ищем опытного разработчика. Отличное знание HTML, CSS, JavaScript. ` +
`Опыт работы с фреймворками React или Vue. Готовность к командной работе и умение ` +
`решать сложные задачи. Предлагаем интересные проекты и конкурентную зарплату.\n` +
`</code>\n` +
`Если есть дополнительные требования, такие как ограничение по локации или ` +
`требования к иностранному языку, пожалуйста, укажи их также.\n` +
`\n` +
`После отправки мне текста, я посмотрю вакансию, проверю заполнение, сгенерирую красивое превью, ` +
`расставлю теги для поиска и покажу тебе с указанием даты публикации. Отправку публикации ` +
`можно отозвать. А после размещения для удаления вакансии или внесения изменений тебе придется ` +
`связаться с администратором.\n` +
`\n` +
`Не беспокойся, я всегда здесь, чтобы помочь тебе с публикацией вакансий. Однако, имей в виду, ` +
`что администраторы могут блокировать публикации без моего уведомления.\n` +
`\n` +
`У меня есть ограничение в ${config.publishConfig.userMonthVacancyLimit} бесплатных ` +
`размещений в месяц от одного человека и компании. Если ты хочешь разместить больше вакансий ` +
`от себя или компании, обратись к @${config.botConsultantUsername}.`;
4 changes: 4 additions & 0 deletions src/launchApplication.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ bot.telegram.setMyCommands([
command: BotCommands.Template,
description: BotCommandDescription[BotCommands.Template],
},
{
command: BotCommands.Help,
description: BotCommandDescription[BotCommands.Help],
},
]);

SubscribeToActionsService.subscribeToCommands();
Expand Down
1 change: 1 addition & 0 deletions src/services/bot/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from "./gracefulShutdown";
export * from "./handleErrors";
export * from "./sendVacancyTemplateMessage";
export * from "./sendHelpMessage";
20 changes: 20 additions & 0 deletions src/services/bot/sendHelpMessage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { helpMessageText } from "../../constants/messages";
import logger from "../logger";

export const sendHelpMessage = async (ctx) => {
try {
const { username } = ctx?.update?.message?.chat || {};

logger.info(`User @${username} requests for help`);

await ctx.reply(helpMessageText, { parse_mode: "HTML" });

logger.info(`Help message successfully sent to @${username}`);
} catch (err) {
logger.error(
`Failed to send message with help info - ${
(err as Error)?.message || JSON.stringify(err)
}`
);
}
};
1 change: 1 addition & 0 deletions src/services/subscribe-to-actions/subscribeToCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ import bot from "../../launchBot";

export const subscribeToCommands = () => {
bot.command(BotCommands.Template, BotService.sendVacancyTemplateMessage);
bot.command(BotCommands.Help, BotService.sendHelpMessage);
};

0 comments on commit e48544c

Please sign in to comment.