feat: Custom Attributes for contacts (#1158)

Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
This commit is contained in:
Sojan Jose
2020-08-21 19:30:27 +05:30
committed by GitHub
parent 507b40a51d
commit cdd385b269
18 changed files with 182 additions and 21 deletions

View File

@@ -12,14 +12,14 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController
def create
ActiveRecord::Base.transaction do
@contact = Current.account.contacts.new(contact_create_params)
@contact = Current.account.contacts.new(contact_params)
@contact.save!
@contact_inbox = build_contact_inbox
end
end
def update
@contact.update!(contact_params)
@contact.update!(contact_update_params)
end
def search
@@ -43,14 +43,21 @@ class Api::V1::Accounts::ContactsController < Api::V1::Accounts::BaseController
end
def contact_params
params.require(:contact).permit(:name, :email, :phone_number)
params.require(:contact).permit(:name, :email, :phone_number, custom_attributes: {})
end
def contact_custom_attributes
return @contact.custom_attributes.merge(contact_params[:custom_attributes]) if contact_params[:custom_attributes]
@contact.custom_attributes
end
def contact_update_params
# we want the merged custom attributes not the original one
contact_params.except(:custom_attributes).merge({ custom_attributes: contact_custom_attributes })
end
def fetch_contact
@contact = Current.account.contacts.find(params[:id])
end
def contact_create_params
params.require(:contact).permit(:name, :email, :phone_number)
end
end

View File

@@ -10,6 +10,6 @@ class Api::V1::Widget::ContactsController < Api::V1::Widget::BaseController
private
def permitted_params
params.permit(:website_token, :identifier, :email, :name, :avatar_url)
params.permit(:website_token, :identifier, :email, :name, :avatar_url, custom_attributes: {})
end
end