Files

91 lines
5.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.startCommand = void 0;
const db_1 = require("../db/db");
const User_1 = require("../models/User");
const axios_1 = __importDefault(require("axios"));
function startCommand(ctx) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
function isBotOwner(userId) {
const ownerUserId = 1053404914; // Замените этот ID на фактический ID владельца
return userId === ownerUserId;
}
try {
yield db_1.sequelize.authenticate(); // Проверка подключения к базе данных
yield db_1.UserBase.sync(); // Создание таблицы, если её нет
console.log('User table has been created or already exists.');
// Проверка, существует ли пользователь в базе данных
const [userInstance, created] = yield db_1.UserBase.findOrCreate({
where: { id: (_a = ctx.from) === null || _a === void 0 ? void 0 : _a.id },
defaults: {
id: ((_b = ctx.from) === null || _b === void 0 ? void 0 : _b.id) || 0,
username: ((_c = ctx.from) === null || _c === void 0 ? void 0 : _c.username) || '',
vacansyindex: 0,
role: isBotOwner((_d = ctx.from) === null || _d === void 0 ? void 0 : _d.id) ? User_1.UserRole.OWNER : User_1.UserRole.CLIENT,
language: ((_e = ctx.from) === null || _e === void 0 ? void 0 : _e.language_code) || 'ru',
message_id: ((_g = (_f = ctx.callbackQuery) === null || _f === void 0 ? void 0 : _f.message) === null || _g === void 0 ? void 0 : _g.message_id) || 0,
last_obj: '',
chat_id: (_h = ctx.chat) === null || _h === void 0 ? void 0 : _h.id,
resume_id: null,
},
});
// Выполняем запрос на удаление резюме, если оно существует
try {
const response = yield axios_1.default.delete(`${process.env.API}students/${(_j = ctx.from) === null || _j === void 0 ? void 0 : _j.id}`, {
headers: {
'X-API-KEY': 'SbRHOVoK97GKCx3Lqx6hKXLbZZJEd0GTGbeglXdpK9PhSB9kpr4eWCsuIIwnD6F2mgpTDlVHFCRbeFmuSfqBVsb12lNwF3P1tmdxiktl7zH9sDS2YK7Pyj2DecCWAZ3n',
},
});
if (response.status === 204) {
console.log('Резюме успешно удалено на сервере.');
yield db_1.Resume.destroy({ where: { id: (_k = ctx.from) === null || _k === void 0 ? void 0 : _k.id } }); // Удаляем запись из базы данных
yield ctx.reply('Ваше резюме было удалено.');
}
else {
console.warn('Не удалось удалить резюме, сервер вернул статус:', response.status);
yield ctx.reply('Не удалось удалить ваше резюме. Попробуйте позже.');
}
}
catch (error) {
console.error('Ошибка при удалении резюме:', error);
yield ctx.reply('Произошла ошибка при удалении резюме. Пожалуйста, попробуйте позже.');
}
// Приветственное сообщение
const greetingMessage = {
text: 'Вас приветствует бот MTUCI jobs! \n\n' +
'Для подтверждения того, что вы студент МТУСИ, вам потребуется привязать вашу учетную запись LMS к проекту MtuciTech (https://mtucitech.ru/) и привязать свой телеграм через бота @apimtucibot. Мы также можем запросить у них некоторые ваши данные, чтобы упростить заполнение анкеты.',
buttons: [[{ text: 'Понял', callback: 'accept2' }]],
};
// Отправка приветственного сообщения с кнопками
yield ctx.reply(greetingMessage.text, {
reply_markup: {
inline_keyboard: greetingMessage.buttons.map(row => row.map(button => ({
text: button.text,
callback_data: button.callback,
}))),
},
parse_mode: 'HTML',
});
console.log('Бот запущен');
}
catch (e) {
console.error('Произошла ошибка при запуске бота', e);
ctx.reply('Произошла ошибка при запуске. Пожалуйста, попробуйте позже.');
}
});
}
exports.startCommand = startCommand;