AdonisJS

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.

1

Установите пакет

npm install @escalated-dev/escalated-adonis
2

Настройте провайдер

node ace configure @escalated-dev/escalated-adonis
3

Подключите маршруты

Зарегистрируйте маршруты 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. Никаких новых абстракций для изучения.

TypeScript
// 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.