32 lines
854 B
Ruby
32 lines
854 B
Ruby
module Enterprise::Account
|
|
def usage_limits
|
|
{
|
|
agents: get_limits(:agents).to_i,
|
|
inboxes: get_limits(:inboxes).to_i
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
def get_limits(limit_name)
|
|
config_name = "ACCOUNT_#{limit_name.to_s.upcase}_LIMIT"
|
|
self[:limits][limit_name.to_s] || GlobalConfig.get(config_name)[config_name] || ChatwootApp.max_limit
|
|
end
|
|
|
|
def validate_limit_keys
|
|
errors.add(:limits, ': Invalid data') unless self[:limits].is_a? Hash
|
|
self[:limits] = {} if self[:limits].blank?
|
|
|
|
limit_schema = {
|
|
'type' => 'object',
|
|
'properties' => {
|
|
'inboxes' => { 'type': 'number' },
|
|
'agents' => { 'type': 'number' }
|
|
},
|
|
'required' => [],
|
|
'additionalProperties' => false
|
|
}
|
|
|
|
errors.add(:limits, ': Invalid data') unless JSONSchemer.schema(limit_schema).valid?(self[:limits])
|
|
end
|
|
end
|