chore: Add ee helper, custom_attributes to account (#5058)
This commit is contained in:
parent
d8140db2e8
commit
1dc7ce526e
14 changed files with 56 additions and 23 deletions
|
@ -195,3 +195,7 @@ USE_INBOX_AVATAR_FOR_BOT=true
|
|||
# If you want to use official mobile app,
|
||||
# the notifications would be relayed via a Chatwoot server
|
||||
ENABLE_PUSH_RELAY_SERVER=true
|
||||
|
||||
# Stripe API key
|
||||
STRIPE_SECRET_KEY=
|
||||
STRIPE_WEBHOOK_SECRET=
|
||||
|
|
3
Gemfile
3
Gemfile
|
@ -127,6 +127,9 @@ gem 'working_hours'
|
|||
# full text search for articles
|
||||
gem 'pg_search'
|
||||
|
||||
# Subscriptions, Billing
|
||||
gem 'stripe'
|
||||
|
||||
group :production, :staging do
|
||||
# we dont want request timing out in development while using byebug
|
||||
gem 'rack-timeout'
|
||||
|
|
|
@ -616,6 +616,7 @@ GEM
|
|||
sprockets (>= 3.0.0)
|
||||
squasher (0.6.2)
|
||||
statsd-ruby (1.5.0)
|
||||
stripe (6.5.0)
|
||||
telephone_number (1.4.16)
|
||||
thor (1.2.1)
|
||||
tilt (2.0.10)
|
||||
|
@ -769,6 +770,7 @@ DEPENDENCIES
|
|||
spring
|
||||
spring-watcher-listen
|
||||
squasher
|
||||
stripe
|
||||
telephone_number
|
||||
time_diff
|
||||
twilio-ruby (~> 5.66)
|
||||
|
@ -787,4 +789,4 @@ RUBY VERSION
|
|||
ruby 3.0.4p208
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.16
|
||||
2.3.14
|
||||
|
|
|
@ -15,6 +15,11 @@ class ApiClient {
|
|||
|
||||
baseUrl() {
|
||||
let url = this.apiVersion;
|
||||
|
||||
if (this.options.enterprise) {
|
||||
url = `/enterprise${url}`;
|
||||
}
|
||||
|
||||
if (this.options.accountScoped) {
|
||||
const isInsideAccountScopedURLs = window.location.pathname.includes(
|
||||
'/app/accounts'
|
||||
|
|
|
@ -5,7 +5,7 @@ import InboxesAPI from '../../api/inboxes';
|
|||
import WebChannel from '../../api/channel/webChannel';
|
||||
import FBChannel from '../../api/channel/fbChannel';
|
||||
import TwilioChannel from '../../api/channel/twilioChannel';
|
||||
import { parseAPIErrorResponse } from '../utils/api';
|
||||
import { throwErrorMessage } from '../utils/api';
|
||||
|
||||
const buildInboxData = inboxParams => {
|
||||
const formData = new FormData();
|
||||
|
@ -43,11 +43,6 @@ export const state = {
|
|||
},
|
||||
};
|
||||
|
||||
const throwErrorMessage = error => {
|
||||
const errorMessage = parseAPIErrorResponse(error);
|
||||
throw new Error(errorMessage);
|
||||
};
|
||||
|
||||
export const getters = {
|
||||
getInboxes($state) {
|
||||
return $state.records;
|
||||
|
|
|
@ -55,3 +55,8 @@ export const parseAPIErrorResponse = error => {
|
|||
}
|
||||
return error;
|
||||
};
|
||||
|
||||
export const throwErrorMessage = error => {
|
||||
const errorMessage = parseAPIErrorResponse(error);
|
||||
throw new Error(errorMessage);
|
||||
};
|
||||
|
|
|
@ -2,6 +2,7 @@ import {
|
|||
getLoadingStatus,
|
||||
parseAPIErrorResponse,
|
||||
setLoadingStatus,
|
||||
throwErrorMessage,
|
||||
} from '../api';
|
||||
|
||||
describe('#getLoadingStatus', () => {
|
||||
|
@ -37,3 +38,14 @@ describe('#parseAPIErrorResponse', () => {
|
|||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#throwErrorMessage', () => {
|
||||
it('throws correct error', () => {
|
||||
const errorFn = function throwErrorMessageFn() {
|
||||
throwErrorMessage({
|
||||
response: { data: { message: 'Error Message [message]' } },
|
||||
});
|
||||
};
|
||||
expect(errorFn).toThrow('Error Message [message]');
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#
|
||||
# id :integer not null, primary key
|
||||
# auto_resolve_duration :integer
|
||||
# custom_attributes :jsonb
|
||||
# domain :string(100)
|
||||
# feature_flags :integer default(0), not null
|
||||
# limits :jsonb
|
||||
|
|
|
@ -1,9 +1,2 @@
|
|||
json.id @account.id
|
||||
json.name @account.name
|
||||
json.locale @account.locale
|
||||
json.domain @account.domain
|
||||
json.custom_email_domain_enabled @account.custom_email_domain_enabled
|
||||
json.support_email @account.support_email
|
||||
json.features @account.all_features
|
||||
json.auto_resolve_duration @account.auto_resolve_duration
|
||||
json.partial! 'api/v1/models/account.json.jbuilder', resource: @account
|
||||
json.latest_chatwoot_version @latest_chatwoot_version
|
||||
|
|
|
@ -1,7 +1 @@
|
|||
json.id @account.id
|
||||
json.name @account.name
|
||||
json.locale @account.locale
|
||||
json.domain @account.domain
|
||||
json.custom_email_domain_enabled @account.custom_email_domain_enabled
|
||||
json.support_email @account.support_email
|
||||
json.features @account.enabled_features
|
||||
json.partial! 'api/v1/models/account.json.jbuilder', resource: @account
|
||||
|
|
10
app/views/api/v1/models/_account.json.jbuilder
Normal file
10
app/views/api/v1/models/_account.json.jbuilder
Normal file
|
@ -0,0 +1,10 @@
|
|||
json.auto_resolve_duration resource.auto_resolve_duration
|
||||
json.created_at resource.created_at
|
||||
json.custom_attributes resource.custom_attributes
|
||||
json.custom_email_domain_enabled @account.custom_email_domain_enabled
|
||||
json.domain @account.domain
|
||||
json.features @account.enabled_features
|
||||
json.id @account.id
|
||||
json.locale @account.locale
|
||||
json.name @account.name
|
||||
json.support_email @account.support_email
|
3
config/initializers/stripe.rb
Normal file
3
config/initializers/stripe.rb
Normal file
|
@ -0,0 +1,3 @@
|
|||
require 'stripe'
|
||||
|
||||
Stripe.api_key = ENV.fetch('STRIPE_SECRET_KEY', nil)
|
|
@ -0,0 +1,5 @@
|
|||
class AddCustomAttributesToAccount < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
add_column :accounts, :custom_attributes, :jsonb, default: {}
|
||||
end
|
||||
end
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2022_07_06_085458) do
|
||||
ActiveRecord::Schema.define(version: 2022_07_18_123938) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pg_stat_statements"
|
||||
|
@ -53,6 +53,7 @@ ActiveRecord::Schema.define(version: 2022_07_06_085458) do
|
|||
t.integer "feature_flags", default: 0, null: false
|
||||
t.integer "auto_resolve_duration"
|
||||
t.jsonb "limits", default: {}
|
||||
t.jsonb "custom_attributes", default: {}
|
||||
end
|
||||
|
||||
create_table "action_mailbox_inbound_emails", force: :cascade do |t|
|
||||
|
|
Loading…
Reference in a new issue