mirror of
https://github.com/discourse/discourse-chat-integration.git
synced 2025-03-09 14:35:34 +00:00
Make CHANNEL_PARAMETERS a list
This commit is contained in:
parent
ebb6fa947d
commit
1ef9073027
@ -9,7 +9,7 @@ class DiscourseChat::ChatController < ApplicationController
|
|||||||
providers = ::DiscourseChat::Provider.enabled_providers.map {|x| {
|
providers = ::DiscourseChat::Provider.enabled_providers.map {|x| {
|
||||||
name: x::PROVIDER_NAME,
|
name: x::PROVIDER_NAME,
|
||||||
id: x::PROVIDER_NAME,
|
id: x::PROVIDER_NAME,
|
||||||
channel_regex: (defined? x::PROVIDER_CHANNEL_REGEX) ? x::PROVIDER_CHANNEL_REGEX : nil
|
channel_parameters: (defined? x::CHANNEL_PARAMETERS) ? x::CHANNEL_PARAMETERS : []
|
||||||
}}
|
}}
|
||||||
|
|
||||||
render json:providers, root: 'providers'
|
render json:providers, root: 'providers'
|
||||||
|
@ -26,13 +26,13 @@ class DiscourseChat::Channel < DiscourseChat::PluginModel
|
|||||||
|
|
||||||
params = ::DiscourseChat::Provider.get_by_name(provider)::CHANNEL_PARAMETERS
|
params = ::DiscourseChat::Provider.get_by_name(provider)::CHANNEL_PARAMETERS
|
||||||
|
|
||||||
unless params.keys.sort == data.keys.sort
|
unless params.map {|p| p[:key]}.sort == data.keys.sort
|
||||||
errors.add(:data, "data does not match the required structure for provider #{provider}")
|
errors.add(:data, "data does not match the required structure for provider #{provider}")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
data.each do |key, value|
|
data.each do |key, value|
|
||||||
regex_string = params[key]
|
regex_string = params.find{|p| p[:key] == key}[:regex]
|
||||||
if !Regexp.new(regex_string).match?(value)
|
if !Regexp.new(regex_string).match?(value)
|
||||||
errors.add(:data, "data.#{key} is invalid")
|
errors.add(:data, "data.#{key} is invalid")
|
||||||
end
|
end
|
||||||
|
@ -3,7 +3,9 @@ module DiscourseChat::Provider::SlackProvider
|
|||||||
|
|
||||||
PROVIDER_ENABLED_SETTING = :chat_integration_slack_enabled
|
PROVIDER_ENABLED_SETTING = :chat_integration_slack_enabled
|
||||||
|
|
||||||
CHANNEL_PARAMETERS = {"identifier" => '^[@#]\S*$'}
|
CHANNEL_PARAMETERS = [
|
||||||
|
{key: "identifier", regex: '^[@#]\S*$'}
|
||||||
|
]
|
||||||
|
|
||||||
def self.excerpt(post, max_length = SiteSetting.chat_integration_slack_excerpt_length)
|
def self.excerpt(post, max_length = SiteSetting.chat_integration_slack_excerpt_length)
|
||||||
doc = Nokogiri::HTML.fragment(post.excerpt(max_length,
|
doc = Nokogiri::HTML.fragment(post.excerpt(max_length,
|
||||||
|
@ -3,7 +3,7 @@ module DiscourseChat
|
|||||||
module TelegramProvider
|
module TelegramProvider
|
||||||
PROVIDER_NAME = "telegram".freeze
|
PROVIDER_NAME = "telegram".freeze
|
||||||
PROVIDER_ENABLED_SETTING = :chat_integration_telegram_enabled
|
PROVIDER_ENABLED_SETTING = :chat_integration_telegram_enabled
|
||||||
CHANNEL_PARAMETERS = {}
|
CHANNEL_PARAMETERS = []
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,7 +8,7 @@ RSpec.shared_context "dummy provider" do
|
|||||||
module ::DiscourseChat::Provider::DummyProvider
|
module ::DiscourseChat::Provider::DummyProvider
|
||||||
PROVIDER_NAME = "dummy".freeze
|
PROVIDER_NAME = "dummy".freeze
|
||||||
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
||||||
CHANNEL_PARAMETERS = {}
|
CHANNEL_PARAMETERS = []
|
||||||
|
|
||||||
@@sent_messages = []
|
@@sent_messages = []
|
||||||
@@raise_exception = nil
|
@@raise_exception = nil
|
||||||
@ -47,7 +47,9 @@ RSpec.shared_context "validated dummy provider" do
|
|||||||
module ::DiscourseChat::Provider::Dummy2Provider
|
module ::DiscourseChat::Provider::Dummy2Provider
|
||||||
PROVIDER_NAME = "dummy2".freeze
|
PROVIDER_NAME = "dummy2".freeze
|
||||||
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
PROVIDER_ENABLED_SETTING = :chat_integration_enabled # Tie to main plugin enabled setting
|
||||||
CHANNEL_PARAMETERS = {"val" => '\S+'}
|
CHANNEL_PARAMETERS = [
|
||||||
|
{key: "val", regex: '\S+'}
|
||||||
|
]
|
||||||
|
|
||||||
@@sent_messages = []
|
@@sent_messages = []
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user