TypeScript-нативные тикеты поддержки для AdonisJS
Модели Lucid ORM, сервис-провайдеры и рендеринг Inertia. Escalated интегрируется с AdonisJS v6 как полностью типизированный пакет с первоклассной поддержкой TypeScript.
$ npm install @escalated-dev/escalated-adonisСоздано для AdonisJS
Почему Escalated для AdonisJS
Escalated спроектирован, чтобы ощущаться как нативный пакет AdonisJS, а не прикрученная интеграция.
Модели Lucid ORM
Тикеты, ответы, теги и активности — модели Lucid. Используйте связи, скоупы и конструктор запросов с полным выводом типов TypeScript.
Сервис-провайдеры
Регистрируйте Escalated через сервис-провайдеры AdonisJS. Конфигурация, привязки и логика загрузки следуют стандартным паттернам AdonisJS.
Нативный TypeScript
Каждая модель, контроллер и сервис написаны на TypeScript. Полная типобезопасность, автодополнение и проверки на этапе компиляции по всему пакету.
Начать
Как это работает
Три шага до полнофункциональной системы поддержки внутри приложения AdonisJS.
Установите пакет
npm install @escalated-dev/escalated-adonisНастройте провайдер
node ace configure @escalated-dev/escalated-adonisПодключите маршруты
Зарегистрируйте маршруты Escalated в start/routes.ts, и вы в деле. Полное управление тикетами с типобезопасными контроллерами.
Возможности
Всё необходимое
Escalated интегрируется со всей экосистемой AdonisJS из коробки.
Связи Lucid
Тикеты принадлежат пользователям, имеют множество ответов и используют полиморфные связи. Типобезопасное построение запросов и жадная загрузка встроены.
Интеграция с очередью Bull
Уведомления по почте и отправка webhook используют встроенную систему очередей AdonisJS. Фоновая обработка с логикой повторов и мониторингом.
Авторизация Bouncer
Авторизация интегрируется с AdonisJS Bouncer. Определяйте способности и политики для контроля того, кто может просматривать, отвечать и управлять тикетами.
Эмиттер событий
Каждое действие с тикетом генерирует типизированные события. Слушайте TicketCreated, ReplyAdded и StatusChanged с полной типобезопасностью.
HTTP Middleware
Применяйте существующие middleware к маршрутам Escalated. Аутентификация, ограничение скорости и скоупинг тенантов работают естественно в конвейере middleware AdonisJS.
Тестовые помощники Japa
Поставляется с тестовыми помощниками для Japa. Создавайте тикеты, ответы и пользователей в тестовом наборе с типизированными функциями фабрик.
Интеграция
Ощущается нативно для AdonisJS
Стандартные паттерны AdonisJS. Никаких новых абстракций для изучения.
// start/routes.ts
import router from '@adonisjs/core/services/router'
import { escalatedRoutes } from '@escalated-dev/escalated-adonis'
escalatedRoutes(router)
// app/models/user.ts
import { compose } from '@adonisjs/core/helpers'
import { HasTickets } from '@escalated-dev/escalated-adonis'
export default class User extends compose(BaseModel, HasTickets) {}
// Anywhere in your application
const ticket = await user.related('tickets').create({
subject: 'Need help with billing',
priority: 'high',
})
await ticket.related('replies').create({
body: "We've updated your invoice.",
userId: agent.id,
})Готовы добавить тикеты поддержки в приложение AdonisJS?
Escalated — открытый код и бесплатен навсегда. Начните с документации или исследуйте исходный код на GitHub.