Это небольшой PHP бот, предназначенный для работы с событиями в Slack Разрабатывался для работы связки Slack + HALP (Atlasian):
- в публичном канале созданы формы обращений
- при публикации сообщений этих форм бот ставит emoji, которое является тригером для инициации тикета в HALP
Работа бота организована таким образом, что на него приходят сообщения о публикации новых сообщений в каналах, куда он добавлен. Затем обрабатывается информация о канале, откуда пришло сообщение и осуществляется ротация по существующим директориям в src/channels. Если сообщение отправлено в канал, который описан в коде бота - выполняется flow, описанный в файле src/channels/{any channel}/law.php.
Для выпонения основной задачи в создан массив $array_of_reaction в дирректории src/Reaction_to_card.php: там перечисленны названия форм и эмодзи, которые нужно установить для создания тикета в определённой очереди (см настройки HALP)
Если форма в SLack (Workflow) содержит более одного step, который публикует сообщения - бот будет ставить эмодзи на каждом, в т.ч. в тред. Пытался отсечь эту проблему проверкой отправляется ли сообщение в тред но выяснил, что в таком случае первое сообщение, которое является топик-стартером отправляется также в тред, а не в канал