mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 03:27:52 +00:00
chore: upgrade ruby version to 3.4.4 (#11524)
- Chore upgrade ruby version to 3.4.4 before we migrate to rails 7.2 over #11037
This commit is contained in:
@@ -73,15 +73,15 @@ jobs:
|
|||||||
libvips
|
libvips
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Install RVM and Ruby 3.3.3
|
name: Install RVM and Ruby 3.4.4
|
||||||
command: |
|
command: |
|
||||||
sudo apt-get install -y gpg
|
sudo apt-get install -y gpg
|
||||||
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
||||||
\curl -sSL https://get.rvm.io | bash -s stable
|
\curl -sSL https://get.rvm.io | bash -s stable
|
||||||
echo 'source ~/.rvm/scripts/rvm' >> $BASH_ENV
|
echo 'source ~/.rvm/scripts/rvm' >> $BASH_ENV
|
||||||
source ~/.rvm/scripts/rvm
|
source ~/.rvm/scripts/rvm
|
||||||
rvm install "3.3.3"
|
rvm install "3.4.4"
|
||||||
rvm use 3.3.3 --default
|
rvm use 3.4.4 --default
|
||||||
gem install bundler -v 2.5.16
|
gem install bundler -v 2.5.16
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ services:
|
|||||||
args:
|
args:
|
||||||
VARIANT: 'ubuntu-22.04'
|
VARIANT: 'ubuntu-22.04'
|
||||||
NODE_VERSION: '23.7.0'
|
NODE_VERSION: '23.7.0'
|
||||||
RUBY_VERSION: '3.3.3'
|
RUBY_VERSION: '3.4.4'
|
||||||
# On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000.
|
# On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000.
|
||||||
USER_UID: '1000'
|
USER_UID: '1000'
|
||||||
USER_GID: '1000'
|
USER_GID: '1000'
|
||||||
@@ -25,7 +25,7 @@ services:
|
|||||||
args:
|
args:
|
||||||
VARIANT: 'ubuntu-22.04'
|
VARIANT: 'ubuntu-22.04'
|
||||||
NODE_VERSION: '23.7.0'
|
NODE_VERSION: '23.7.0'
|
||||||
RUBY_VERSION: '3.3.3'
|
RUBY_VERSION: '3.4.4'
|
||||||
# On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000.
|
# On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000.
|
||||||
USER_UID: '1000'
|
USER_UID: '1000'
|
||||||
USER_GID: '1000'
|
USER_GID: '1000'
|
||||||
|
|||||||
187
.rubocop.yml
187
.rubocop.yml
@@ -1,7 +1,10 @@
|
|||||||
require:
|
plugins:
|
||||||
- rubocop-performance
|
- rubocop-performance
|
||||||
- rubocop-rails
|
- rubocop-rails
|
||||||
- rubocop-rspec
|
- rubocop-rspec
|
||||||
|
- rubocop-factory_bot
|
||||||
|
|
||||||
|
require:
|
||||||
- ./rubocop/use_from_email.rb
|
- ./rubocop/use_from_email.rb
|
||||||
- ./rubocop/custom_cop_location.rb
|
- ./rubocop/custom_cop_location.rb
|
||||||
|
|
||||||
@@ -13,44 +16,61 @@ Metrics/ClassLength:
|
|||||||
Exclude:
|
Exclude:
|
||||||
- 'app/models/message.rb'
|
- 'app/models/message.rb'
|
||||||
- 'app/models/conversation.rb'
|
- 'app/models/conversation.rb'
|
||||||
|
|
||||||
Metrics/MethodLength:
|
Metrics/MethodLength:
|
||||||
Max: 19
|
Max: 19
|
||||||
|
Exclude:
|
||||||
|
- 'enterprise/lib/captain/agent.rb'
|
||||||
|
|
||||||
RSpec/ExampleLength:
|
RSpec/ExampleLength:
|
||||||
Max: 25
|
Max: 25
|
||||||
|
|
||||||
Style/Documentation:
|
Style/Documentation:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/ExponentialNotation:
|
Style/ExponentialNotation:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/FrozenStringLiteralComment:
|
Style/FrozenStringLiteralComment:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/SymbolArray:
|
Style/SymbolArray:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/OpenStructUse:
|
Style/OpenStructUse:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/OptionalBooleanParameter:
|
Style/OptionalBooleanParameter:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/services/email_templates/db_resolver_service.rb'
|
- 'app/services/email_templates/db_resolver_service.rb'
|
||||||
- 'app/dispatchers/dispatcher.rb'
|
- 'app/dispatchers/dispatcher.rb'
|
||||||
|
|
||||||
Style/GlobalVars:
|
Style/GlobalVars:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'config/initializers/01_redis.rb'
|
- 'config/initializers/01_redis.rb'
|
||||||
- 'config/initializers/rack_attack.rb'
|
- 'config/initializers/rack_attack.rb'
|
||||||
- 'lib/redis/alfred.rb'
|
- 'lib/redis/alfred.rb'
|
||||||
- 'lib/global_config.rb'
|
- 'lib/global_config.rb'
|
||||||
|
|
||||||
Style/ClassVars:
|
Style/ClassVars:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/services/email_templates/db_resolver_service.rb'
|
- 'app/services/email_templates/db_resolver_service.rb'
|
||||||
|
|
||||||
Lint/MissingSuper:
|
Lint/MissingSuper:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/drops/base_drop.rb'
|
- 'app/drops/base_drop.rb'
|
||||||
|
|
||||||
Lint/SymbolConversion:
|
Lint/SymbolConversion:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Lint/EmptyBlock:
|
Lint/EmptyBlock:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/views/api/v1/accounts/conversations/toggle_status.json.jbuilder'
|
- 'app/views/api/v1/accounts/conversations/toggle_status.json.jbuilder'
|
||||||
|
|
||||||
Lint/OrAssignmentToConstant:
|
Lint/OrAssignmentToConstant:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'lib/redis/config.rb'
|
- 'lib/redis/config.rb'
|
||||||
|
|
||||||
Metrics/BlockLength:
|
Metrics/BlockLength:
|
||||||
Max: 30
|
Max: 30
|
||||||
Exclude:
|
Exclude:
|
||||||
@@ -58,10 +78,16 @@ Metrics/BlockLength:
|
|||||||
- '**/routes.rb'
|
- '**/routes.rb'
|
||||||
- 'config/environments/*'
|
- 'config/environments/*'
|
||||||
- db/schema.rb
|
- db/schema.rb
|
||||||
|
|
||||||
Metrics/ModuleLength:
|
Metrics/ModuleLength:
|
||||||
Exclude:
|
Exclude:
|
||||||
- lib/seeders/message_seeder.rb
|
- lib/seeders/message_seeder.rb
|
||||||
- spec/support/slack_stubs.rb
|
- spec/support/slack_stubs.rb
|
||||||
|
|
||||||
|
Rails/HelperInstanceVariable:
|
||||||
|
Exclude:
|
||||||
|
- enterprise/app/helpers/captain/chat_helper.rb
|
||||||
|
|
||||||
Rails/ApplicationController:
|
Rails/ApplicationController:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/controllers/api/v1/widget/messages_controller.rb'
|
- 'app/controllers/api/v1/widget/messages_controller.rb'
|
||||||
@@ -71,74 +97,101 @@ Rails/ApplicationController:
|
|||||||
- 'app/controllers/platform_controller.rb'
|
- 'app/controllers/platform_controller.rb'
|
||||||
- 'app/controllers/public_controller.rb'
|
- 'app/controllers/public_controller.rb'
|
||||||
- 'app/controllers/survey/responses_controller.rb'
|
- 'app/controllers/survey/responses_controller.rb'
|
||||||
|
|
||||||
Rails/FindEach:
|
Rails/FindEach:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Include:
|
Include:
|
||||||
- 'app/**/*.rb'
|
- 'app/**/*.rb'
|
||||||
|
|
||||||
Rails/CompactBlank:
|
Rails/CompactBlank:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Rails/EnvironmentVariableAccess:
|
Rails/EnvironmentVariableAccess:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Rails/TimeZoneAssignment:
|
Rails/TimeZoneAssignment:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Rails/RedundantPresenceValidationOnBelongsTo:
|
Rails/RedundantPresenceValidationOnBelongsTo:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
|
Rails/InverseOf:
|
||||||
|
Exclude:
|
||||||
|
- enterprise/app/models/captain/assistant.rb
|
||||||
|
|
||||||
|
Rails/UniqueValidationWithoutIndex:
|
||||||
|
Exclude:
|
||||||
|
- app/models/canned_response.rb
|
||||||
|
- app/models/telegram_bot.rb
|
||||||
|
- enterprise/app/models/captain_inbox.rb
|
||||||
|
- 'app/models/channel/twitter_profile.rb'
|
||||||
|
- 'app/models/webhook.rb'
|
||||||
|
- 'app/models/contact.rb'
|
||||||
|
|
||||||
Style/ClassAndModuleChildren:
|
Style/ClassAndModuleChildren:
|
||||||
EnforcedStyle: compact
|
EnforcedStyle: compact
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'config/application.rb'
|
- 'config/application.rb'
|
||||||
- 'config/initializers/monkey_patches/*'
|
- 'config/initializers/monkey_patches/*'
|
||||||
|
|
||||||
Style/MapToHash:
|
Style/MapToHash:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Style/HashSyntax:
|
Style/HashSyntax:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
EnforcedStyle: no_mixed_keys
|
EnforcedStyle: no_mixed_keys
|
||||||
EnforcedShorthandSyntax: never
|
EnforcedShorthandSyntax: never
|
||||||
|
|
||||||
RSpec/NestedGroups:
|
RSpec/NestedGroups:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Max: 4
|
Max: 4
|
||||||
|
|
||||||
RSpec/MessageSpies:
|
RSpec/MessageSpies:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
RSpec/StubbedMock:
|
RSpec/StubbedMock:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
RSpec/FactoryBot/SyntaxMethods:
|
|
||||||
Enabled: false
|
|
||||||
Naming/VariableNumber:
|
Naming/VariableNumber:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
Naming/MemoizedInstanceVariableName:
|
Naming/MemoizedInstanceVariableName:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/models/message.rb'
|
- 'app/models/message.rb'
|
||||||
|
|
||||||
Style/GuardClause:
|
Style/GuardClause:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/builders/account_builder.rb'
|
- 'app/builders/account_builder.rb'
|
||||||
- 'app/models/attachment.rb'
|
- 'app/models/attachment.rb'
|
||||||
- 'app/models/message.rb'
|
- 'app/models/message.rb'
|
||||||
|
|
||||||
Metrics/AbcSize:
|
Metrics/AbcSize:
|
||||||
Max: 26
|
Max: 26
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/controllers/concerns/auth_helper.rb'
|
- 'app/controllers/concerns/auth_helper.rb'
|
||||||
Rails/UniqueValidationWithoutIndex:
|
|
||||||
Exclude:
|
|
||||||
- 'app/models/channel/twitter_profile.rb'
|
|
||||||
- 'app/models/webhook.rb'
|
|
||||||
- 'app/models/contact.rb'
|
|
||||||
- 'app/models/integrations/hook.rb'
|
- 'app/models/integrations/hook.rb'
|
||||||
- 'app/models/canned_response.rb'
|
- 'app/models/canned_response.rb'
|
||||||
- 'app/models/telegram_bot.rb'
|
- 'app/models/telegram_bot.rb'
|
||||||
|
|
||||||
Rails/RenderInline:
|
Rails/RenderInline:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'app/controllers/swagger_controller.rb'
|
- 'app/controllers/swagger_controller.rb'
|
||||||
|
|
||||||
Rails/ThreeStateBooleanColumn:
|
Rails/ThreeStateBooleanColumn:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'db/migrate/20230503101201_create_sla_policies.rb'
|
- 'db/migrate/20230503101201_create_sla_policies.rb'
|
||||||
|
|
||||||
RSpec/IndexedLet:
|
RSpec/IndexedLet:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
RSpec/NamedSubject:
|
RSpec/NamedSubject:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
# we should bring this down
|
# we should bring this down
|
||||||
RSpec/MultipleExpectations:
|
RSpec/MultipleExpectations:
|
||||||
Max: 7
|
Max: 7
|
||||||
|
|
||||||
RSpec/MultipleMemoizedHelpers:
|
RSpec/MultipleMemoizedHelpers:
|
||||||
Max: 14
|
Max: 14
|
||||||
|
|
||||||
@@ -166,3 +219,121 @@ AllCops:
|
|||||||
- 'tmp/**/*'
|
- 'tmp/**/*'
|
||||||
- 'storage/**/*'
|
- 'storage/**/*'
|
||||||
- 'db/migrate/20230426130150_init_schema.rb'
|
- 'db/migrate/20230426130150_init_schema.rb'
|
||||||
|
|
||||||
|
FactoryBot/SyntaxMethods:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# Disable new rules causing errors
|
||||||
|
Layout/LeadingCommentSpace:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/ReturnNilInPredicateMethodDefinition:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/RedundantParentheses:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Performance/StringIdentifierArgument:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/LiteralAsCondition:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/RedundantReturn:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Layout/SpaceAroundOperators:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Rails/EnvLocal:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Rails/WhereRange:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/UselessConstantScoping:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/MultipleComparison:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Bundler/OrderedGems:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
RSpec/ExampleWording:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
RSpec/ReceiveMessages:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
FactoryBot/AssociationStyle:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Rails/EnumSyntax:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/RedundantTypeConversion:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# Additional rules to disable
|
||||||
|
Rails/RedundantActiveRecordAllMethod:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Layout/TrailingEmptyLines:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/SafeNavigationChainLength:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/SafeNavigationConsistency:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Lint/CopDirectiveSyntax:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# Final set of rules to disable
|
||||||
|
FactoryBot/ExcessiveCreateList:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
RSpec/MissingExpectationTargetMethod:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Performance/InefficientHashSearch:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/RedundantSelfAssignmentBranch:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/YAMLFileRead:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Layout/ExtraSpacing:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/RedundantFilterChain:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Performance/MapMethodChain:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Rails/RootPathnameMethods:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/SuperArguments:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
# Final remaining rules to disable
|
||||||
|
Rails/Delegate:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
Style/CaseLikeIf:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
FactoryBot/RedundantFactoryOption:
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
|
FactoryBot/FactoryAssociationWithStrategy:
|
||||||
|
Enabled: false
|
||||||
@@ -1 +1 @@
|
|||||||
3.3.3
|
3.4.4
|
||||||
|
|||||||
5
Gemfile
5
Gemfile
@@ -1,10 +1,10 @@
|
|||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
ruby '3.3.3'
|
ruby '3.4.4'
|
||||||
|
|
||||||
##-- base gems for rails --##
|
##-- base gems for rails --##
|
||||||
gem 'rack-cors', '2.0.0', require: 'rack/cors'
|
gem 'rack-cors', '2.0.0', require: 'rack/cors'
|
||||||
gem 'rails', '~> 7.0.8.4'
|
gem 'rails', '~> 7.1'
|
||||||
# Reduces boot times through caching; required in config/boot.rb
|
# Reduces boot times through caching; required in config/boot.rb
|
||||||
gem 'bootsnap', require: false
|
gem 'bootsnap', require: false
|
||||||
|
|
||||||
@@ -237,6 +237,7 @@ group :development, :test do
|
|||||||
gem 'rubocop-performance', require: false
|
gem 'rubocop-performance', require: false
|
||||||
gem 'rubocop-rails', require: false
|
gem 'rubocop-rails', require: false
|
||||||
gem 'rubocop-rspec', require: false
|
gem 'rubocop-rspec', require: false
|
||||||
|
gem 'rubocop-factory_bot', require: false
|
||||||
gem 'seed_dump'
|
gem 'seed_dump'
|
||||||
gem 'shoulda-matchers'
|
gem 'shoulda-matchers'
|
||||||
gem 'simplecov', '0.17.1', require: false
|
gem 'simplecov', '0.17.1', require: false
|
||||||
|
|||||||
300
Gemfile.lock
300
Gemfile.lock
@@ -25,76 +25,89 @@ GIT
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (7.0.8.7)
|
actioncable (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailbox (7.0.8.7)
|
zeitwerk (~> 2.6)
|
||||||
actionpack (= 7.0.8.7)
|
actionmailbox (7.1.5.1)
|
||||||
activejob (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activerecord (= 7.0.8.7)
|
activejob (= 7.1.5.1)
|
||||||
activestorage (= 7.0.8.7)
|
activerecord (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activestorage (= 7.1.5.1)
|
||||||
|
activesupport (= 7.1.5.1)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.7.1)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
actionmailer (7.0.8.7)
|
actionmailer (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
actionview (= 7.0.8.7)
|
actionview (= 7.1.5.1)
|
||||||
activejob (= 7.0.8.7)
|
activejob (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.2)
|
||||||
actionpack (7.0.8.7)
|
actionpack (7.1.5.1)
|
||||||
actionview (= 7.0.8.7)
|
actionview (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
rack (~> 2.0, >= 2.2.4)
|
nokogiri (>= 1.8.5)
|
||||||
|
racc
|
||||||
|
rack (>= 2.2.4)
|
||||||
|
rack-session (>= 1.0.1)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.2)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
rails-html-sanitizer (~> 1.6)
|
||||||
actiontext (7.0.8.7)
|
actiontext (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activerecord (= 7.0.8.7)
|
activerecord (= 7.1.5.1)
|
||||||
activestorage (= 7.0.8.7)
|
activestorage (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
globalid (>= 0.6.0)
|
globalid (>= 0.6.0)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (7.0.8.7)
|
actionview (7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.11)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.2)
|
||||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
rails-html-sanitizer (~> 1.6)
|
||||||
active_record_query_trace (1.8)
|
active_record_query_trace (1.8)
|
||||||
activejob (7.0.8.7)
|
activejob (7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (7.0.8.7)
|
activemodel (7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
activerecord (7.0.8.7)
|
activerecord (7.1.5.1)
|
||||||
activemodel (= 7.0.8.7)
|
activemodel (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
activerecord-import (1.4.1)
|
timeout (>= 0.4.0)
|
||||||
|
activerecord-import (2.1.0)
|
||||||
activerecord (>= 4.2)
|
activerecord (>= 4.2)
|
||||||
activestorage (7.0.8.7)
|
activestorage (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activejob (= 7.0.8.7)
|
activejob (= 7.1.5.1)
|
||||||
activerecord (= 7.0.8.7)
|
activerecord (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
marcel (~> 1.0)
|
marcel (~> 1.0)
|
||||||
mini_mime (>= 1.1.0)
|
activesupport (7.1.5.1)
|
||||||
activesupport (7.0.8.7)
|
base64
|
||||||
|
benchmark (>= 0.3)
|
||||||
|
bigdecimal
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
|
connection_pool (>= 2.2.5)
|
||||||
|
drb
|
||||||
i18n (>= 1.6, < 2)
|
i18n (>= 1.6, < 2)
|
||||||
|
logger (>= 1.4.2)
|
||||||
minitest (>= 5.1)
|
minitest (>= 5.1)
|
||||||
|
mutex_m
|
||||||
|
securerandom (>= 0.3)
|
||||||
tzinfo (~> 2.0)
|
tzinfo (~> 2.0)
|
||||||
acts-as-taggable-on (9.0.1)
|
acts-as-taggable-on (12.0.0)
|
||||||
activerecord (>= 6.0, < 7.1)
|
activerecord (>= 7.1, < 8.1)
|
||||||
|
zeitwerk (>= 2.4, < 3.0)
|
||||||
addressable (2.8.7)
|
addressable (2.8.7)
|
||||||
public_suffix (>= 2.0.2, < 7.0)
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
administrate (0.20.1)
|
administrate (0.20.1)
|
||||||
@@ -116,7 +129,7 @@ GEM
|
|||||||
annotate (3.2.0)
|
annotate (3.2.0)
|
||||||
activerecord (>= 3.2, < 8.0)
|
activerecord (>= 3.2, < 8.0)
|
||||||
rake (>= 10.4, < 14.0)
|
rake (>= 10.4, < 14.0)
|
||||||
ast (2.4.2)
|
ast (2.4.3)
|
||||||
attr_extras (7.1.0)
|
attr_extras (7.1.0)
|
||||||
audited (5.4.1)
|
audited (5.4.1)
|
||||||
activerecord (>= 5.0, < 7.7)
|
activerecord (>= 5.0, < 7.7)
|
||||||
@@ -142,14 +155,15 @@ GEM
|
|||||||
statsd-ruby (~> 1.1)
|
statsd-ruby (~> 1.1)
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
bcrypt (3.1.20)
|
bcrypt (3.1.20)
|
||||||
bigdecimal (3.1.8)
|
benchmark (0.4.0)
|
||||||
|
bigdecimal (3.1.9)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bootsnap (1.16.0)
|
bootsnap (1.16.0)
|
||||||
msgpack (~> 1.2)
|
msgpack (~> 1.2)
|
||||||
brakeman (5.4.1)
|
brakeman (5.4.1)
|
||||||
browser (5.3.1)
|
browser (5.3.1)
|
||||||
builder (3.3.0)
|
builder (3.3.0)
|
||||||
bullet (7.0.7)
|
bullet (8.0.7)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
uniform_notifier (~> 1.11)
|
uniform_notifier (~> 1.11)
|
||||||
bundle-audit (0.1.0)
|
bundle-audit (0.1.0)
|
||||||
@@ -161,8 +175,8 @@ GEM
|
|||||||
climate_control (1.2.0)
|
climate_control (1.2.0)
|
||||||
coderay (1.1.3)
|
coderay (1.1.3)
|
||||||
commonmarker (0.23.10)
|
commonmarker (0.23.10)
|
||||||
concurrent-ruby (1.3.4)
|
concurrent-ruby (1.3.5)
|
||||||
connection_pool (2.4.1)
|
connection_pool (2.5.3)
|
||||||
crack (1.0.0)
|
crack (1.0.0)
|
||||||
bigdecimal
|
bigdecimal
|
||||||
rexml
|
rexml
|
||||||
@@ -176,16 +190,10 @@ GEM
|
|||||||
activerecord (>= 5.a)
|
activerecord (>= 5.a)
|
||||||
database_cleaner-core (~> 2.0.0)
|
database_cleaner-core (~> 2.0.0)
|
||||||
database_cleaner-core (2.0.1)
|
database_cleaner-core (2.0.1)
|
||||||
datadog-ci (0.8.3)
|
|
||||||
msgpack
|
|
||||||
date (3.4.1)
|
date (3.4.1)
|
||||||
ddtrace (1.23.2)
|
ddtrace (0.48.0)
|
||||||
datadog-ci (~> 0.8.1)
|
ffi (~> 1.0)
|
||||||
debase-ruby_core_source (= 3.3.1)
|
|
||||||
libdatadog (~> 7.0.0.1.0)
|
|
||||||
libddwaf (~> 1.14.0.0.0)
|
|
||||||
msgpack
|
msgpack
|
||||||
debase-ruby_core_source (3.3.1)
|
|
||||||
debug (1.8.0)
|
debug (1.8.0)
|
||||||
irb (>= 1.5.0)
|
irb (>= 1.5.0)
|
||||||
reline (>= 0.3.1)
|
reline (>= 0.3.1)
|
||||||
@@ -196,10 +204,10 @@ GEM
|
|||||||
railties (>= 4.1.0)
|
railties (>= 4.1.0)
|
||||||
responders
|
responders
|
||||||
warden (~> 1.2.3)
|
warden (~> 1.2.3)
|
||||||
devise_token_auth (1.2.3)
|
devise_token_auth (1.2.5)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
devise (> 3.5.2, < 5)
|
devise (> 3.5.2, < 5)
|
||||||
rails (>= 4.2.0, < 7.2)
|
rails (>= 4.2.0, < 8.1)
|
||||||
diff-lcs (1.5.1)
|
diff-lcs (1.5.1)
|
||||||
digest-crc (0.6.5)
|
digest-crc (0.6.5)
|
||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
@@ -212,6 +220,7 @@ GEM
|
|||||||
railties (>= 6.1)
|
railties (>= 6.1)
|
||||||
down (5.4.0)
|
down (5.4.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
|
drb (2.2.3)
|
||||||
dry-cli (1.1.0)
|
dry-cli (1.1.0)
|
||||||
ecma-re-validator (0.4.0)
|
ecma-re-validator (0.4.0)
|
||||||
regexp_parser (~> 2.2)
|
regexp_parser (~> 2.2)
|
||||||
@@ -254,7 +263,10 @@ GEM
|
|||||||
fcm (1.0.8)
|
fcm (1.0.8)
|
||||||
faraday (>= 1.0.0, < 3.0)
|
faraday (>= 1.0.0, < 3.0)
|
||||||
googleauth (~> 1)
|
googleauth (~> 1)
|
||||||
ffi (1.16.3)
|
ffi (1.17.2)
|
||||||
|
ffi (1.17.2-arm64-darwin)
|
||||||
|
ffi (1.17.2-x86_64-darwin)
|
||||||
|
ffi (1.17.2-x86_64-linux-gnu)
|
||||||
ffi-compiler (1.0.1)
|
ffi-compiler (1.0.1)
|
||||||
ffi (>= 1.0.0)
|
ffi (>= 1.0.0)
|
||||||
rake
|
rake
|
||||||
@@ -315,16 +327,13 @@ GEM
|
|||||||
google-cloud-translate-v3 (0.10.0)
|
google-cloud-translate-v3 (0.10.0)
|
||||||
gapic-common (>= 0.20.0, < 2.a)
|
gapic-common (>= 0.20.0, < 2.a)
|
||||||
google-cloud-errors (~> 1.0)
|
google-cloud-errors (~> 1.0)
|
||||||
google-protobuf (3.25.5)
|
google-protobuf (3.25.7)
|
||||||
google-protobuf (3.25.5-arm64-darwin)
|
|
||||||
google-protobuf (3.25.5-x86_64-darwin)
|
|
||||||
google-protobuf (3.25.5-x86_64-linux)
|
|
||||||
googleapis-common-protos (1.6.0)
|
googleapis-common-protos (1.6.0)
|
||||||
google-protobuf (>= 3.18, < 5.a)
|
google-protobuf (>= 3.18, < 5.a)
|
||||||
googleapis-common-protos-types (~> 1.7)
|
googleapis-common-protos-types (~> 1.7)
|
||||||
grpc (~> 1.41)
|
grpc (~> 1.41)
|
||||||
googleapis-common-protos-types (1.14.0)
|
googleapis-common-protos-types (1.20.0)
|
||||||
google-protobuf (~> 3.18)
|
google-protobuf (>= 3.18, < 5.a)
|
||||||
googleauth (1.11.2)
|
googleauth (1.11.2)
|
||||||
faraday (>= 1.0, < 3.a)
|
faraday (>= 1.0, < 3.a)
|
||||||
google-cloud-env (~> 2.1)
|
google-cloud-env (~> 2.1)
|
||||||
@@ -334,17 +343,17 @@ GEM
|
|||||||
signet (>= 0.16, < 2.a)
|
signet (>= 0.16, < 2.a)
|
||||||
groupdate (6.2.1)
|
groupdate (6.2.1)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
grpc (1.62.0)
|
grpc (1.72.0)
|
||||||
google-protobuf (~> 3.25)
|
google-protobuf (>= 3.25, < 5.0)
|
||||||
googleapis-common-protos-types (~> 1.0)
|
googleapis-common-protos-types (~> 1.0)
|
||||||
grpc (1.62.0-arm64-darwin)
|
grpc (1.72.0-arm64-darwin)
|
||||||
google-protobuf (~> 3.25)
|
google-protobuf (>= 3.25, < 5.0)
|
||||||
googleapis-common-protos-types (~> 1.0)
|
googleapis-common-protos-types (~> 1.0)
|
||||||
grpc (1.62.0-x86_64-darwin)
|
grpc (1.72.0-x86_64-darwin)
|
||||||
google-protobuf (~> 3.25)
|
google-protobuf (>= 3.25, < 5.0)
|
||||||
googleapis-common-protos-types (~> 1.0)
|
googleapis-common-protos-types (~> 1.0)
|
||||||
grpc (1.62.0-x86_64-linux)
|
grpc (1.72.0-x86_64-linux)
|
||||||
google-protobuf (~> 3.25)
|
google-protobuf (>= 3.25, < 5.0)
|
||||||
googleapis-common-protos-types (~> 1.0)
|
googleapis-common-protos-types (~> 1.0)
|
||||||
haikunator (1.1.1)
|
haikunator (1.1.1)
|
||||||
hairtrigger (1.0.0)
|
hairtrigger (1.0.0)
|
||||||
@@ -370,7 +379,7 @@ GEM
|
|||||||
mini_mime (>= 1.0.0)
|
mini_mime (>= 1.0.0)
|
||||||
multi_xml (>= 0.5.2)
|
multi_xml (>= 0.5.2)
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
i18n (1.14.6)
|
i18n (1.14.7)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
image_processing (1.12.2)
|
image_processing (1.12.2)
|
||||||
mini_magick (>= 4.9.5, < 5)
|
mini_magick (>= 4.9.5, < 5)
|
||||||
@@ -388,7 +397,7 @@ GEM
|
|||||||
rails-dom-testing (>= 1, < 3)
|
rails-dom-testing (>= 1, < 3)
|
||||||
railties (>= 4.2.0)
|
railties (>= 4.2.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
json (2.6.3)
|
json (2.12.0)
|
||||||
json_refs (0.1.8)
|
json_refs (0.1.8)
|
||||||
hana
|
hana
|
||||||
json_schemer (0.2.24)
|
json_schemer (0.2.24)
|
||||||
@@ -423,21 +432,13 @@ GEM
|
|||||||
faraday-multipart
|
faraday-multipart
|
||||||
json (>= 1.8)
|
json (>= 1.8)
|
||||||
rexml
|
rexml
|
||||||
|
language_server-protocol (3.17.0.5)
|
||||||
launchy (2.5.2)
|
launchy (2.5.2)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
letter_opener (1.8.1)
|
letter_opener (1.8.1)
|
||||||
launchy (>= 2.2, < 3)
|
launchy (>= 2.2, < 3)
|
||||||
libdatadog (7.0.0.1.0)
|
|
||||||
libdatadog (7.0.0.1.0-x86_64-linux)
|
|
||||||
libddwaf (1.14.0.0.0)
|
|
||||||
ffi (~> 1.0)
|
|
||||||
libddwaf (1.14.0.0.0-arm64-darwin)
|
|
||||||
ffi (~> 1.0)
|
|
||||||
libddwaf (1.14.0.0.0-x86_64-darwin)
|
|
||||||
ffi (~> 1.0)
|
|
||||||
libddwaf (1.14.0.0.0-x86_64-linux)
|
|
||||||
ffi (~> 1.0)
|
|
||||||
line-bot-api (1.28.0)
|
line-bot-api (1.28.0)
|
||||||
|
lint_roller (1.1.0)
|
||||||
liquid (5.4.0)
|
liquid (5.4.0)
|
||||||
listen (3.8.0)
|
listen (3.8.0)
|
||||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
@@ -445,7 +446,7 @@ GEM
|
|||||||
llhttp-ffi (0.4.0)
|
llhttp-ffi (0.4.0)
|
||||||
ffi-compiler (~> 1.0)
|
ffi-compiler (~> 1.0)
|
||||||
rake (~> 13.0)
|
rake (~> 13.0)
|
||||||
logger (1.6.0)
|
logger (1.7.0)
|
||||||
lograge (0.14.0)
|
lograge (0.14.0)
|
||||||
actionpack (>= 4)
|
actionpack (>= 4)
|
||||||
activesupport (>= 4)
|
activesupport (>= 4)
|
||||||
@@ -471,10 +472,10 @@ GEM
|
|||||||
mini_magick (4.12.0)
|
mini_magick (4.12.0)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
mini_portile2 (2.8.8)
|
mini_portile2 (2.8.8)
|
||||||
minitest (5.25.4)
|
minitest (5.25.5)
|
||||||
mock_redis (0.36.0)
|
mock_redis (0.36.0)
|
||||||
ruby2_keywords
|
ruby2_keywords
|
||||||
msgpack (1.7.0)
|
msgpack (1.8.0)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
multi_xml (0.6.0)
|
multi_xml (0.6.0)
|
||||||
multipart-post (2.3.0)
|
multipart-post (2.3.0)
|
||||||
@@ -545,14 +546,16 @@ GEM
|
|||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
ostruct (0.6.1)
|
ostruct (0.6.1)
|
||||||
parallel (1.23.0)
|
parallel (1.27.0)
|
||||||
parser (3.2.2.1)
|
parser (3.3.8.0)
|
||||||
ast (~> 2.4.1)
|
ast (~> 2.4.1)
|
||||||
|
racc
|
||||||
pg (1.5.3)
|
pg (1.5.3)
|
||||||
pg_search (2.3.6)
|
pg_search (2.3.6)
|
||||||
activerecord (>= 5.2)
|
activerecord (>= 5.2)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
pgvector (0.1.1)
|
pgvector (0.1.1)
|
||||||
|
prism (1.4.0)
|
||||||
procore-sift (1.0.0)
|
procore-sift (1.0.0)
|
||||||
activerecord (>= 6.1)
|
activerecord (>= 6.1)
|
||||||
pry (0.14.2)
|
pry (0.14.2)
|
||||||
@@ -567,7 +570,7 @@ GEM
|
|||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
raabro (1.4.0)
|
raabro (1.4.0)
|
||||||
racc (1.8.1)
|
racc (1.8.1)
|
||||||
rack (2.2.14)
|
rack (2.2.15)
|
||||||
rack-attack (6.7.0)
|
rack-attack (6.7.0)
|
||||||
rack (>= 1.0, < 4)
|
rack (>= 1.0, < 4)
|
||||||
rack-contrib (2.5.0)
|
rack-contrib (2.5.0)
|
||||||
@@ -581,23 +584,28 @@ GEM
|
|||||||
rack (~> 2.2, >= 2.2.4)
|
rack (~> 2.2, >= 2.2.4)
|
||||||
rack-proxy (0.7.7)
|
rack-proxy (0.7.7)
|
||||||
rack
|
rack
|
||||||
|
rack-session (1.0.2)
|
||||||
|
rack (< 3)
|
||||||
rack-test (2.1.0)
|
rack-test (2.1.0)
|
||||||
rack (>= 1.3)
|
rack (>= 1.3)
|
||||||
rack-timeout (0.6.3)
|
rack-timeout (0.6.3)
|
||||||
rails (7.0.8.7)
|
rackup (1.0.1)
|
||||||
actioncable (= 7.0.8.7)
|
rack (< 3)
|
||||||
actionmailbox (= 7.0.8.7)
|
webrick
|
||||||
actionmailer (= 7.0.8.7)
|
rails (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actioncable (= 7.1.5.1)
|
||||||
actiontext (= 7.0.8.7)
|
actionmailbox (= 7.1.5.1)
|
||||||
actionview (= 7.0.8.7)
|
actionmailer (= 7.1.5.1)
|
||||||
activejob (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activemodel (= 7.0.8.7)
|
actiontext (= 7.1.5.1)
|
||||||
activerecord (= 7.0.8.7)
|
actionview (= 7.1.5.1)
|
||||||
activestorage (= 7.0.8.7)
|
activejob (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activemodel (= 7.1.5.1)
|
||||||
|
activerecord (= 7.1.5.1)
|
||||||
|
activestorage (= 7.1.5.1)
|
||||||
|
activesupport (= 7.1.5.1)
|
||||||
bundler (>= 1.15.0)
|
bundler (>= 1.15.0)
|
||||||
railties (= 7.0.8.7)
|
railties (= 7.1.5.1)
|
||||||
rails-dom-testing (2.2.0)
|
rails-dom-testing (2.2.0)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
minitest
|
minitest
|
||||||
@@ -605,13 +613,14 @@ GEM
|
|||||||
rails-html-sanitizer (1.6.1)
|
rails-html-sanitizer (1.6.1)
|
||||||
loofah (~> 2.21)
|
loofah (~> 2.21)
|
||||||
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
||||||
railties (7.0.8.7)
|
railties (7.1.5.1)
|
||||||
actionpack (= 7.0.8.7)
|
actionpack (= 7.1.5.1)
|
||||||
activesupport (= 7.0.8.7)
|
activesupport (= 7.1.5.1)
|
||||||
method_source
|
irb
|
||||||
|
rackup (>= 1.0.0)
|
||||||
rake (>= 12.2)
|
rake (>= 12.2)
|
||||||
thor (~> 1.0)
|
thor (~> 1.0, >= 1.2.2)
|
||||||
zeitwerk (~> 2.5)
|
zeitwerk (~> 2.6)
|
||||||
rainbow (3.1.1)
|
rainbow (3.1.1)
|
||||||
rake (13.2.1)
|
rake (13.2.1)
|
||||||
rb-fsevent (0.11.2)
|
rb-fsevent (0.11.2)
|
||||||
@@ -623,7 +632,7 @@ GEM
|
|||||||
connection_pool
|
connection_pool
|
||||||
redis-namespace (1.10.0)
|
redis-namespace (1.10.0)
|
||||||
redis (>= 4)
|
redis (>= 4)
|
||||||
regexp_parser (2.8.0)
|
regexp_parser (2.10.0)
|
||||||
reline (0.3.6)
|
reline (0.3.6)
|
||||||
io-console (~> 0.5)
|
io-console (~> 0.5)
|
||||||
representable (3.2.0)
|
representable (3.2.0)
|
||||||
@@ -643,7 +652,7 @@ GEM
|
|||||||
retriable (3.1.2)
|
retriable (3.1.2)
|
||||||
reverse_markdown (2.1.1)
|
reverse_markdown (2.1.1)
|
||||||
nokogiri
|
nokogiri
|
||||||
rexml (3.3.9)
|
rexml (3.4.1)
|
||||||
rspec-core (3.13.0)
|
rspec-core (3.13.0)
|
||||||
rspec-support (~> 3.13.0)
|
rspec-support (~> 3.13.0)
|
||||||
rspec-expectations (3.13.2)
|
rspec-expectations (3.13.2)
|
||||||
@@ -663,30 +672,36 @@ GEM
|
|||||||
rspec-support (3.13.1)
|
rspec-support (3.13.1)
|
||||||
rspec_junit_formatter (0.6.0)
|
rspec_junit_formatter (0.6.0)
|
||||||
rspec-core (>= 2, < 4, != 2.12.0)
|
rspec-core (>= 2, < 4, != 2.12.0)
|
||||||
rubocop (1.50.2)
|
rubocop (1.75.6)
|
||||||
json (~> 2.3)
|
json (~> 2.3)
|
||||||
|
language_server-protocol (~> 3.17.0.2)
|
||||||
|
lint_roller (~> 1.1.0)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 3.2.0.0)
|
parser (>= 3.3.0.2)
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
rainbow (>= 2.2.2, < 4.0)
|
||||||
regexp_parser (>= 1.8, < 3.0)
|
regexp_parser (>= 2.9.3, < 3.0)
|
||||||
rexml (>= 3.2.5, < 4.0)
|
rubocop-ast (>= 1.44.0, < 2.0)
|
||||||
rubocop-ast (>= 1.28.0, < 2.0)
|
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (>= 2.4.0, < 3.0)
|
unicode-display_width (>= 2.4.0, < 4.0)
|
||||||
rubocop-ast (1.28.1)
|
rubocop-ast (1.44.1)
|
||||||
parser (>= 3.2.1.0)
|
parser (>= 3.3.7.2)
|
||||||
rubocop-capybara (2.18.0)
|
prism (~> 1.4)
|
||||||
rubocop (~> 1.41)
|
rubocop-factory_bot (2.27.1)
|
||||||
rubocop-performance (1.17.1)
|
lint_roller (~> 1.1)
|
||||||
rubocop (>= 1.7.0, < 2.0)
|
rubocop (~> 1.72, >= 1.72.1)
|
||||||
rubocop-ast (>= 0.4.0)
|
rubocop-performance (1.25.0)
|
||||||
rubocop-rails (2.19.1)
|
lint_roller (~> 1.1)
|
||||||
|
rubocop (>= 1.75.0, < 2.0)
|
||||||
|
rubocop-ast (>= 1.38.0, < 2.0)
|
||||||
|
rubocop-rails (2.32.0)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
|
lint_roller (~> 1.1)
|
||||||
rack (>= 1.1)
|
rack (>= 1.1)
|
||||||
rubocop (>= 1.33.0, < 2.0)
|
rubocop (>= 1.75.0, < 2.0)
|
||||||
rubocop-rspec (2.21.0)
|
rubocop-ast (>= 1.44.0, < 2.0)
|
||||||
rubocop (~> 1.33)
|
rubocop-rspec (3.6.0)
|
||||||
rubocop-capybara (~> 2.17)
|
lint_roller (~> 1.1)
|
||||||
|
rubocop (~> 1.72, >= 1.72.1)
|
||||||
ruby-openai (7.3.1)
|
ruby-openai (7.3.1)
|
||||||
event_stream_parser (>= 0.3.0, < 2.0.0)
|
event_stream_parser (>= 0.3.0, < 2.0.0)
|
||||||
faraday (>= 1)
|
faraday (>= 1)
|
||||||
@@ -816,8 +831,10 @@ GEM
|
|||||||
unf (0.1.4)
|
unf (0.1.4)
|
||||||
unf_ext
|
unf_ext
|
||||||
unf_ext (0.0.8.2)
|
unf_ext (0.0.8.2)
|
||||||
unicode-display_width (2.4.2)
|
unicode-display_width (3.1.4)
|
||||||
uniform_notifier (1.16.0)
|
unicode-emoji (~> 4.0, >= 4.0.4)
|
||||||
|
unicode-emoji (4.0.4)
|
||||||
|
uniform_notifier (1.17.0)
|
||||||
uri (1.0.3)
|
uri (1.0.3)
|
||||||
uri_template (0.7.0)
|
uri_template (0.7.0)
|
||||||
valid_email2 (5.2.6)
|
valid_email2 (5.2.6)
|
||||||
@@ -845,7 +862,9 @@ GEM
|
|||||||
addressable (>= 2.8.0)
|
addressable (>= 2.8.0)
|
||||||
crack (>= 0.3.2)
|
crack (>= 0.3.2)
|
||||||
hashdiff (>= 0.4.0, < 2.0.0)
|
hashdiff (>= 0.4.0, < 2.0.0)
|
||||||
websocket-driver (0.7.6)
|
webrick (1.9.1)
|
||||||
|
websocket-driver (0.7.7)
|
||||||
|
base64
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.5)
|
websocket-extensions (0.1.5)
|
||||||
wisper (2.0.0)
|
wisper (2.0.0)
|
||||||
@@ -951,7 +970,7 @@ DEPENDENCIES
|
|||||||
rack-cors (= 2.0.0)
|
rack-cors (= 2.0.0)
|
||||||
rack-mini-profiler (>= 3.2.0)
|
rack-mini-profiler (>= 3.2.0)
|
||||||
rack-timeout
|
rack-timeout
|
||||||
rails (~> 7.0.8.4)
|
rails (~> 7.1)
|
||||||
redis
|
redis
|
||||||
redis-namespace
|
redis-namespace
|
||||||
responders (>= 3.1.1)
|
responders (>= 3.1.1)
|
||||||
@@ -960,6 +979,7 @@ DEPENDENCIES
|
|||||||
rspec-rails (>= 6.1.5)
|
rspec-rails (>= 6.1.5)
|
||||||
rspec_junit_formatter
|
rspec_junit_formatter
|
||||||
rubocop
|
rubocop
|
||||||
|
rubocop-factory_bot
|
||||||
rubocop-performance
|
rubocop-performance
|
||||||
rubocop-rails
|
rubocop-rails
|
||||||
rubocop-rspec
|
rubocop-rspec
|
||||||
@@ -997,7 +1017,7 @@ DEPENDENCIES
|
|||||||
working_hours
|
working_hours
|
||||||
|
|
||||||
RUBY VERSION
|
RUBY VERSION
|
||||||
ruby 3.3.3p89
|
ruby 3.4.4p34
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.5.16
|
2.5.16
|
||||||
|
|||||||
@@ -59,11 +59,13 @@ class ContactInboxBuilder
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create_contact_inbox
|
def create_contact_inbox
|
||||||
::ContactInbox.create_with(hmac_verified: hmac_verified || false).find_or_create_by!(
|
attrs = {
|
||||||
contact_id: @contact.id,
|
contact_id: @contact.id,
|
||||||
inbox_id: @inbox.id,
|
inbox_id: @inbox.id,
|
||||||
source_id: @source_id
|
source_id: @source_id
|
||||||
)
|
}
|
||||||
|
|
||||||
|
::ContactInbox.where(attrs).first_or_create!(hmac_verified: hmac_verified || false)
|
||||||
rescue ActiveRecord::RecordNotUnique
|
rescue ActiveRecord::RecordNotUnique
|
||||||
Rails.logger.info("[ContactInboxBuilder] RecordNotUnique #{@source_id} #{@contact.id} #{@inbox.id}")
|
Rails.logger.info("[ContactInboxBuilder] RecordNotUnique #{@source_id} #{@contact.id} #{@inbox.id}")
|
||||||
update_old_contact_inbox
|
update_old_contact_inbox
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class ApplicationMailbox < ActionMailbox::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def in_reply_to_matches?(in_reply_to)
|
def in_reply_to_matches?(in_reply_to)
|
||||||
Array.wrap(in_reply_to).any? { _1.match?(CONVERSATION_MESSAGE_ID_PATTERN) }
|
Array.wrap(in_reply_to).any? { it.match?(CONVERSATION_MESSAGE_ID_PATTERN) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# checks if follow this pattern send it to reply_mailbox
|
# checks if follow this pattern send it to reply_mailbox
|
||||||
|
|||||||
@@ -97,8 +97,8 @@ class Account < ApplicationRecord
|
|||||||
|
|
||||||
has_one_attached :contacts_export
|
has_one_attached :contacts_export
|
||||||
|
|
||||||
enum locale: LANGUAGES_CONFIG.map { |key, val| [val[:iso_639_1_code], key] }.to_h
|
enum :locale, LANGUAGES_CONFIG.map { |key, val| [val[:iso_639_1_code], key] }.to_h, prefix: true
|
||||||
enum status: { active: 0, suspended: 1 }
|
enum :status, { active: 0, suspended: 1 }
|
||||||
|
|
||||||
scope :with_auto_resolve, -> { where("(settings ->> 'auto_resolve_after')::int IS NOT NULL") }
|
scope :with_auto_resolve, -> { where("(settings ->> 'auto_resolve_after')::int IS NOT NULL") }
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,12 @@ class Conversation < ApplicationRecord
|
|||||||
additional_attributes&.dig('conversation_language')
|
additional_attributes&.dig('conversation_language')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Be aware: The precision of created_at and last_activity_at may differ from Ruby's Time precision.
|
||||||
|
# Our DB column (see schema) stores timestamps with second-level precision (no microseconds), so
|
||||||
|
# if you assign a Ruby Time with microseconds, the DB will truncate it. This may cause subtle differences
|
||||||
|
# if you compare or copy these values in Ruby, also in our specs
|
||||||
|
# So in specs rely on to be_with(1.second) instead of to eq()
|
||||||
|
# TODO: Migrate to use a timestamp with microsecond precision
|
||||||
def last_activity_at
|
def last_activity_at
|
||||||
self[:last_activity_at] || created_at
|
self[:last_activity_at] || created_at
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
# index_email_templates_on_name_and_account_id (name,account_id) UNIQUE
|
# index_email_templates_on_name_and_account_id (name,account_id) UNIQUE
|
||||||
#
|
#
|
||||||
class EmailTemplate < ApplicationRecord
|
class EmailTemplate < ApplicationRecord
|
||||||
enum locale: LANGUAGES_CONFIG.map { |key, val| [val[:iso_639_1_code], key] }.to_h
|
enum :locale, LANGUAGES_CONFIG.map { |key, val| [val[:iso_639_1_code], key] }.to_h, prefix: true
|
||||||
enum template_type: { layout: 0, content: 1 }
|
enum :template_type, { layout: 0, content: 1 }
|
||||||
belongs_to :account, optional: true
|
belongs_to :account, optional: true
|
||||||
|
|
||||||
validates :name, uniqueness: { scope: :account }
|
validates :name, uniqueness: { scope: :account }
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class InstallationConfig < ApplicationRecord
|
|||||||
# https://discuss.rubyonrails.org/t/cve-2022-32224-possible-rce-escalation-bug-with-serialized-columns-in-active-record/81017
|
# https://discuss.rubyonrails.org/t/cve-2022-32224-possible-rce-escalation-bug-with-serialized-columns-in-active-record/81017
|
||||||
# FIX ME : fixes breakage of installation config. we need to migrate.
|
# FIX ME : fixes breakage of installation config. we need to migrate.
|
||||||
# Fix configuration in application.rb
|
# Fix configuration in application.rb
|
||||||
serialize :serialized_value, ActiveSupport::HashWithIndifferentAccess
|
serialize :serialized_value, coder: YAML, type: ActiveSupport::HashWithIndifferentAccess
|
||||||
|
|
||||||
before_validation :set_lock
|
before_validation :set_lock
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
@@ -32,6 +32,10 @@ class InstallationConfig < ApplicationRecord
|
|||||||
after_commit :clear_cache
|
after_commit :clear_cache
|
||||||
|
|
||||||
def value
|
def value
|
||||||
|
# This is an extra hack again cause of the YAML serialization, in case of new object initialization in super admin
|
||||||
|
# It was throwing error as the default value of column '{}' was failing in deserialization.
|
||||||
|
return {}.with_indifferent_access if new_record? && @attributes['serialized_value']&.value_before_type_cast == '{}'
|
||||||
|
|
||||||
serialized_value[:value]
|
serialized_value[:value]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ class User < ApplicationRecord
|
|||||||
self.email = email.try(:downcase)
|
self.email = email.try(:downcase)
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_devise_notification(notification, *args)
|
def send_devise_notification(notification, *)
|
||||||
devise_mailer.with(account: Current.account).send(notification, self, *args).deliver_later
|
devise_mailer.with(account: Current.account).send(notification, self, *).deliver_later
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_password_and_uid
|
def set_password_and_uid
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ class MessageTemplates::Template::CsatSurvey
|
|||||||
private
|
private
|
||||||
|
|
||||||
delegate :contact, :account, :inbox, to: :conversation
|
delegate :contact, :account, :inbox, to: :conversation
|
||||||
delegate :csat_config, to: :inbox
|
|
||||||
|
|
||||||
def should_send_csat_survey?
|
def should_send_csat_survey?
|
||||||
return true unless survey_rules_configured?
|
return true unless survey_rules_configured?
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ KillMode=mixed
|
|||||||
StandardInput=null
|
StandardInput=null
|
||||||
SyslogIdentifier=%p
|
SyslogIdentifier=%p
|
||||||
|
|
||||||
Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.3.3/bin:/home/chatwoot/.rvm/gems/ruby-3.3.3@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.3.3/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin"
|
Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4/bin:/home/chatwoot/.rvm/gems/ruby-3.4.4@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.4.4/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin"
|
||||||
Environment="PORT=3000"
|
Environment="PORT=3000"
|
||||||
Environment="RAILS_ENV=production"
|
Environment="RAILS_ENV=production"
|
||||||
Environment="NODE_ENV=production"
|
Environment="NODE_ENV=production"
|
||||||
Environment="RAILS_LOG_TO_STDOUT=true"
|
Environment="RAILS_LOG_TO_STDOUT=true"
|
||||||
Environment="GEM_HOME=/home/chatwoot/.rvm/gems/ruby-3.3.3"
|
Environment="GEM_HOME=/home/chatwoot/.rvm/gems/ruby-3.4.4"
|
||||||
Environment="GEM_PATH=/home/chatwoot/.rvm/gems/ruby-3.3.3:/home/chatwoot/.rvm/gems/ruby-3.3.3@global"
|
Environment="GEM_PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4:/home/chatwoot/.rvm/gems/ruby-3.4.4@global"
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ MemoryHigh=1.4G
|
|||||||
MemorySwapMax=0
|
MemorySwapMax=0
|
||||||
OOMPolicy=stop
|
OOMPolicy=stop
|
||||||
|
|
||||||
Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.3.3/bin:/home/chatwoot/.rvm/gems/ruby-3.3.3@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.3.3/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin"
|
Environment="PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4/bin:/home/chatwoot/.rvm/gems/ruby-3.4.4@global/bin:/home/chatwoot/.rvm/rubies/ruby-3.4.4/bin:/home/chatwoot/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chatwoot/.rvm/bin:/home/chatwoot/.rvm/bin"
|
||||||
Environment="PORT=3000"
|
Environment="PORT=3000"
|
||||||
Environment="RAILS_ENV=production"
|
Environment="RAILS_ENV=production"
|
||||||
Environment="NODE_ENV=production"
|
Environment="NODE_ENV=production"
|
||||||
Environment="RAILS_LOG_TO_STDOUT=true"
|
Environment="RAILS_LOG_TO_STDOUT=true"
|
||||||
Environment="GEM_HOME=/home/chatwoot/.rvm/gems/ruby-3.3.3"
|
Environment="GEM_HOME=/home/chatwoot/.rvm/gems/ruby-3.4.4"
|
||||||
Environment="GEM_PATH=/home/chatwoot/.rvm/gems/ruby-3.3.3:/home/chatwoot/.rvm/gems/ruby-3.3.3@global"
|
Environment="GEM_PATH=/home/chatwoot/.rvm/gems/ruby-3.4.4:/home/chatwoot/.rvm/gems/ruby-3.4.4@global"
|
||||||
|
|||||||
@@ -338,8 +338,8 @@ function setup_chatwoot() {
|
|||||||
sudo -i -u chatwoot << EOF
|
sudo -i -u chatwoot << EOF
|
||||||
rvm --version
|
rvm --version
|
||||||
rvm autolibs disable
|
rvm autolibs disable
|
||||||
rvm install "ruby-3.3.3"
|
rvm install "ruby-3.4.4"
|
||||||
rvm use 3.3.3 --default
|
rvm use 3.4.4 --default
|
||||||
|
|
||||||
git clone https://github.com/chatwoot/chatwoot.git
|
git clone https://github.com/chatwoot/chatwoot.git
|
||||||
cd chatwoot
|
cd chatwoot
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# pre-build stage
|
# pre-build stage
|
||||||
FROM node:23-alpine as node
|
FROM node:23-alpine as node
|
||||||
FROM ruby:3.3.3-alpine3.19 AS pre-builder
|
FROM ruby:3.4.4-alpine3.21 AS pre-builder
|
||||||
|
|
||||||
ARG NODE_VERSION="23.7.0"
|
ARG NODE_VERSION="23.7.0"
|
||||||
ARG PNPM_VERSION="10.2.0"
|
ARG PNPM_VERSION="10.2.0"
|
||||||
@@ -90,13 +90,13 @@ RUN if [ "$RAILS_ENV" = "production" ]; then \
|
|||||||
RUN git rev-parse HEAD > /app/.git_sha
|
RUN git rev-parse HEAD > /app/.git_sha
|
||||||
|
|
||||||
# Remove unnecessary files
|
# Remove unnecessary files
|
||||||
RUN rm -rf /gems/ruby/3.3.0/cache/*.gem \
|
RUN rm -rf /gems/ruby/3.4.0/cache/*.gem \
|
||||||
&& find /gems/ruby/3.3.0/gems/ \( -name "*.c" -o -name "*.o" \) -delete \
|
&& find /gems/ruby/3.4.0/gems/ \( -name "*.c" -o -name "*.o" \) -delete \
|
||||||
&& rm -rf .git \
|
&& rm -rf .git \
|
||||||
&& rm .gitignore
|
&& rm .gitignore
|
||||||
|
|
||||||
# final build stage
|
# final build stage
|
||||||
FROM ruby:3.3.3-alpine3.19
|
FROM ruby:3.4.4-alpine3.21
|
||||||
|
|
||||||
ARG NODE_VERSION="23.7.0"
|
ARG NODE_VERSION="23.7.0"
|
||||||
ARG PNPM_VERSION="10.2.0"
|
ARG PNPM_VERSION="10.2.0"
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ class Api::V1::Accounts::CustomRolesController < Api::V1::Accounts::EnterpriseAc
|
|||||||
@custom_roles = Current.account.custom_roles
|
@custom_roles = Current.account.custom_roles
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def show; end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@custom_role = Current.account.custom_roles.create!(permitted_params)
|
@custom_role = Current.account.custom_roles.create!(permitted_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def show; end
|
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@custom_role.update!(permitted_params)
|
@custom_role.update!(permitted_params)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ class Api::V1::Accounts::SlaPoliciesController < Api::V1::Accounts::EnterpriseAc
|
|||||||
@sla_policies = Current.account.sla_policies
|
@sla_policies = Current.account.sla_policies
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def show; end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@sla_policy = Current.account.sla_policies.create!(permitted_params)
|
@sla_policy = Current.account.sla_policies.create!(permitted_params)
|
||||||
end
|
end
|
||||||
|
|
||||||
def show; end
|
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@sla_policy.update!(permitted_params)
|
@sla_policy.update!(permitted_params)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class Captain::Conversation::ResponseBuilderJob < ApplicationJob
|
|||||||
def message_content(message)
|
def message_content(message)
|
||||||
return message.content if message.content.present?
|
return message.content if message.content.present?
|
||||||
|
|
||||||
'User has shared an attachment' if message.attachments.any?
|
return 'User has shared an attachment' if message.attachments.any?
|
||||||
|
|
||||||
'User has shared a message without content'
|
'User has shared a message without content'
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ class Captain::ToolRegistryService
|
|||||||
@registered_tools << tool.to_registry_format
|
@registered_tools << tool.to_registry_format
|
||||||
end
|
end
|
||||||
|
|
||||||
def method_missing(method_name, *arguments)
|
def method_missing(method_name, *)
|
||||||
if @tools.key?(method_name.to_s)
|
if @tools.key?(method_name.to_s)
|
||||||
@tools[method_name.to_s].execute(*arguments)
|
@tools[method_name.to_s].execute(*)
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -33,12 +33,12 @@ describe V2::Reports::Conversations::ReportBuilder do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#timeseries' do
|
describe '#timeseries' do
|
||||||
include_examples 'valid metric handler', 'avg_first_response_time', :timeseries, V2::Reports::Timeseries::AverageReportBuilder
|
it_behaves_like 'valid metric handler', 'avg_first_response_time', :timeseries, V2::Reports::Timeseries::AverageReportBuilder
|
||||||
include_examples 'valid metric handler', 'conversations_count', :timeseries, V2::Reports::Timeseries::CountReportBuilder
|
it_behaves_like 'valid metric handler', 'conversations_count', :timeseries, V2::Reports::Timeseries::CountReportBuilder
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#aggregate_value' do
|
describe '#aggregate_value' do
|
||||||
include_examples 'valid metric handler', 'avg_first_response_time', :aggregate_value, V2::Reports::Timeseries::AverageReportBuilder
|
it_behaves_like 'valid metric handler', 'avg_first_response_time', :aggregate_value, V2::Reports::Timeseries::AverageReportBuilder
|
||||||
include_examples 'valid metric handler', 'conversations_count', :aggregate_value, V2::Reports::Timeseries::CountReportBuilder
|
it_behaves_like 'valid metric handler', 'conversations_count', :aggregate_value, V2::Reports::Timeseries::CountReportBuilder
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -793,8 +793,8 @@ RSpec.describe Conversation do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when a new conversation is created' do
|
context 'when a new conversation is created' do
|
||||||
it 'sets last_activity_at to the created_at time' do
|
it 'sets last_activity_at to the created_at time (within DB precision)' do
|
||||||
expect(conversation.last_activity_at).to eq(conversation.created_at)
|
expect(conversation.last_activity_at).to be_within(1.second).of(conversation.created_at)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ RSpec.describe Crm::Leadsquared::Mappers::ConversationMapper do
|
|||||||
expect(result.length).to be <= described_class::ACTIVITY_NOTE_MAX_SIZE + 100
|
expect(result.length).to be <= described_class::ACTIVITY_NOTE_MAX_SIZE + 100
|
||||||
|
|
||||||
# Verify that not all messages are included (some were truncated)
|
# Verify that not all messages are included (some were truncated)
|
||||||
expect(messages.count).to be > result.scan(/John Doe:/).count
|
expect(messages.count).to be > result.scan('John Doe:').count
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'respects the ACTIVITY_NOTE_MAX_SIZE constant' do
|
it 'respects the ACTIVITY_NOTE_MAX_SIZE constant' do
|
||||||
|
|||||||
@@ -46,9 +46,7 @@
|
|||||||
},
|
},
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"paths": {
|
"paths": {
|
||||||
@@ -62,9 +60,7 @@
|
|||||||
"description": "Create an Account",
|
"description": "Create an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -105,9 +101,7 @@
|
|||||||
"description": "Get the details of an account",
|
"description": "Get the details of an account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -134,9 +128,7 @@
|
|||||||
"description": "Update an account's attributes",
|
"description": "Update an account's attributes",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -170,9 +162,7 @@
|
|||||||
"description": "Delete an Account",
|
"description": "Delete an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -203,9 +193,7 @@
|
|||||||
"description": "List all account users",
|
"description": "List all account users",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -247,9 +235,7 @@
|
|||||||
"description": "Create an Account User",
|
"description": "Create an Account User",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -310,9 +296,7 @@
|
|||||||
"description": "Delete an Account User",
|
"description": "Delete an Account User",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -357,9 +341,7 @@
|
|||||||
"description": "List all agent bots available",
|
"description": "List all agent bots available",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -387,9 +369,7 @@
|
|||||||
"description": "Create an agent bot",
|
"description": "Create an agent bot",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -430,9 +410,7 @@
|
|||||||
"description": "Get the details of an agent bot",
|
"description": "Get the details of an agent bot",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -459,9 +437,7 @@
|
|||||||
"description": "Update an agent bot's attributes",
|
"description": "Update an agent bot's attributes",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -495,9 +471,7 @@
|
|||||||
"description": "Delete an AgentBot",
|
"description": "Delete an AgentBot",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -523,9 +497,7 @@
|
|||||||
"description": "Create a User",
|
"description": "Create a User",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -566,9 +538,7 @@
|
|||||||
"description": "Get the details of an user",
|
"description": "Get the details of an user",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -595,9 +565,7 @@
|
|||||||
"description": "Update a user's attributes",
|
"description": "Update a user's attributes",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -631,9 +599,7 @@
|
|||||||
"description": "Delete a User",
|
"description": "Delete a User",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -664,9 +630,7 @@
|
|||||||
"description": "Get the sso link of a user",
|
"description": "Get the sso link of a user",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"platformAppApiKey": [
|
"platformAppApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -704,9 +668,7 @@
|
|||||||
"operationId": "get-details-of-a-inbox",
|
"operationId": "get-details-of-a-inbox",
|
||||||
"summary": "Inbox details",
|
"summary": "Inbox details",
|
||||||
"description": "Get the details of an inbox",
|
"description": "Get the details of an inbox",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"responses": {
|
"responses": {
|
||||||
"200": {
|
"200": {
|
||||||
"description": "Success",
|
"description": "Success",
|
||||||
@@ -736,9 +698,7 @@
|
|||||||
"operationId": "create-a-contact",
|
"operationId": "create-a-contact",
|
||||||
"summary": "Create a contact",
|
"summary": "Create a contact",
|
||||||
"description": "Create a contact",
|
"description": "Create a contact",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"name": "data",
|
"name": "data",
|
||||||
@@ -778,9 +738,7 @@
|
|||||||
"operationId": "get-details-of-a-contact",
|
"operationId": "get-details-of-a-contact",
|
||||||
"summary": "Get a contact",
|
"summary": "Get a contact",
|
||||||
"description": "Get the details of a contact",
|
"description": "Get the details of a contact",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"responses": {
|
"responses": {
|
||||||
"200": {
|
"200": {
|
||||||
"description": "Success",
|
"description": "Success",
|
||||||
@@ -803,9 +761,7 @@
|
|||||||
"operationId": "update-a-contact",
|
"operationId": "update-a-contact",
|
||||||
"summary": "Update a contact",
|
"summary": "Update a contact",
|
||||||
"description": "Update a contact's attributes",
|
"description": "Update a contact's attributes",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"name": "data",
|
"name": "data",
|
||||||
@@ -845,9 +801,7 @@
|
|||||||
"operationId": "create-a-conversation",
|
"operationId": "create-a-conversation",
|
||||||
"summary": "Create a conversation",
|
"summary": "Create a conversation",
|
||||||
"description": "Create a conversation",
|
"description": "Create a conversation",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"name": "data",
|
"name": "data",
|
||||||
@@ -1056,9 +1010,7 @@
|
|||||||
"operationId": "create-a-message",
|
"operationId": "create-a-message",
|
||||||
"summary": "Create a message",
|
"summary": "Create a message",
|
||||||
"description": "Create a message",
|
"description": "Create a message",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"name": "data",
|
"name": "data",
|
||||||
@@ -1127,9 +1079,7 @@
|
|||||||
"operationId": "update-a-message",
|
"operationId": "update-a-message",
|
||||||
"summary": "Update a message",
|
"summary": "Update a message",
|
||||||
"description": "Update a message",
|
"description": "Update a message",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"name": "data",
|
"name": "data",
|
||||||
@@ -1239,9 +1189,7 @@
|
|||||||
"operationId": "get-csat-survey-page",
|
"operationId": "get-csat-survey-page",
|
||||||
"summary": "Get CSAT survey page",
|
"summary": "Get CSAT survey page",
|
||||||
"description": "You can redirect the client to this URL, instead of implementing the CSAT survey component yourself.",
|
"description": "You can redirect the client to this URL, instead of implementing the CSAT survey component yourself.",
|
||||||
"security": [
|
"security": [],
|
||||||
|
|
||||||
],
|
|
||||||
"responses": {
|
"responses": {
|
||||||
"200": {
|
"200": {
|
||||||
"description": "Success"
|
"description": "Success"
|
||||||
@@ -1406,9 +1354,7 @@
|
|||||||
"description": "Get Details of Agents in an Account",
|
"description": "Get Details of Agents in an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1436,9 +1382,7 @@
|
|||||||
"description": "Add a new Agent to Account",
|
"description": "Add a new Agent to Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1515,9 +1459,7 @@
|
|||||||
"description": "Update an Agent in Account",
|
"description": "Update an Agent in Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1587,9 +1529,7 @@
|
|||||||
"description": "Remove an Agent from Account",
|
"description": "Remove an Agent from Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1629,9 +1569,7 @@
|
|||||||
"description": "Get Details of Canned Responses in an Account",
|
"description": "Get Details of Canned Responses in an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1659,9 +1597,7 @@
|
|||||||
"description": "Add a new Canned Response to Account",
|
"description": "Add a new Canned Response to Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1702,9 +1638,7 @@
|
|||||||
"description": "Update a Canned Response in Account",
|
"description": "Update a Canned Response in Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1748,9 +1682,7 @@
|
|||||||
"description": "Remove a Canned Response from Account",
|
"description": "Remove a Canned Response from Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1803,9 +1735,7 @@
|
|||||||
"description": "Get details of custom attributes in an Account",
|
"description": "Get details of custom attributes in an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1833,9 +1763,7 @@
|
|||||||
"description": "Add a new custom attribute to account",
|
"description": "Add a new custom attribute to account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1917,9 +1845,7 @@
|
|||||||
"description": "Update a custom attribute in account",
|
"description": "Update a custom attribute in account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -1963,9 +1889,7 @@
|
|||||||
"description": "Remove a custom attribute from account",
|
"description": "Remove a custom attribute from account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2246,14 +2170,10 @@
|
|||||||
"summary": "Contact Filter",
|
"summary": "Contact Filter",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2466,9 +2386,7 @@
|
|||||||
"description": "Get details of automation rules in an Account",
|
"description": "Get details of automation rules in an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -2496,9 +2414,7 @@
|
|||||||
"description": "Add a new automation rule to account",
|
"description": "Add a new automation rule to account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2577,9 +2493,7 @@
|
|||||||
"description": "Update a automation rule in account",
|
"description": "Update a automation rule in account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2623,9 +2537,7 @@
|
|||||||
"description": "Remove a automation rule from account",
|
"description": "Remove a automation rule from account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2665,9 +2577,7 @@
|
|||||||
"description": "Add a new portal to account",
|
"description": "Add a new portal to account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2706,9 +2616,7 @@
|
|||||||
"description": "Get details of portals in an Account",
|
"description": "Get details of portals in an Account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -2736,9 +2644,7 @@
|
|||||||
"description": "update a new portal to account",
|
"description": "update a new portal to account",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2782,9 +2688,7 @@
|
|||||||
"description": "Add a new category to portal",
|
"description": "Add a new category to portal",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -2828,9 +2732,7 @@
|
|||||||
"description": "Add a new article to portal",
|
"description": "Add a new article to portal",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3041,14 +2943,10 @@
|
|||||||
"description": "Creating a conversation in chatwoot requires a source id. \n\n Learn more about source_id: https://github.com/chatwoot/chatwoot/wiki/Building-on-Top-of-Chatwoot:-Importing-Existing-Contacts-and-Creating-Conversations",
|
"description": "Creating a conversation in chatwoot requires a source id. \n\n Learn more about source_id: https://github.com/chatwoot/chatwoot/wiki/Building-on-Top-of-Chatwoot:-Importing-Existing-Contacts-and-Creating-Conversations",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3191,14 +3089,10 @@
|
|||||||
"summary": "Conversations Filter",
|
"summary": "Conversations Filter",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3329,14 +3223,10 @@
|
|||||||
"description": "Update Conversation Attributes",
|
"description": "Update Conversation Attributes",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3397,14 +3287,10 @@
|
|||||||
"description": "Toggles the status of the conversation between open and resolved",
|
"description": "Toggles the status of the conversation between open and resolved",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3465,14 +3351,10 @@
|
|||||||
"description": "Toggles the priority of conversation",
|
"description": "Toggles the priority of conversation",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3532,14 +3414,10 @@
|
|||||||
"description": "Updates the custom attributes of a conversation",
|
"description": "Updates the custom attributes of a conversation",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -3605,14 +3483,10 @@
|
|||||||
"description": "Assign a conversation to an agent or a team",
|
"description": "Assign a conversation to an agent or a team",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4063,9 +3937,7 @@
|
|||||||
"description": "Get Details of Agents in an Inbox",
|
"description": "Get Details of Agents in an Inbox",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4108,9 +3980,7 @@
|
|||||||
"description": "Add a new Agent to Inbox",
|
"description": "Add a new Agent to Inbox",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4171,9 +4041,7 @@
|
|||||||
"description": "All agents except the one passed in params will be removed",
|
"description": "All agents except the one passed in params will be removed",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4234,9 +4102,7 @@
|
|||||||
"description": "Remove an Agent from Inbox",
|
"description": "Remove an Agent from Inbox",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4333,14 +4199,10 @@
|
|||||||
"description": "Create a new message in the conversation",
|
"description": "Create a new message in the conversation",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"agentBotApiKey": [
|
"agentBotApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4720,9 +4582,7 @@
|
|||||||
"description": "Get Details of Agents in an Team",
|
"description": "Get Details of Agents in an Team",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4761,9 +4621,7 @@
|
|||||||
"description": "Add a new Agent to Team",
|
"description": "Add a new Agent to Team",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4819,9 +4677,7 @@
|
|||||||
"description": "All agents except the one passed in params will be removed",
|
"description": "All agents except the one passed in params will be removed",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
@@ -4877,9 +4733,7 @@
|
|||||||
"description": "Remove an Agent from Team",
|
"description": "Remove an Agent from Team",
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
"userApiKey": [
|
"userApiKey": []
|
||||||
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"parameters": [
|
"parameters": [
|
||||||
|
|||||||
Reference in New Issue
Block a user