Fix: Accept phone number in public contact api (#4580)

This PR makes it possible to pass a phone number to the public contacts API.

Fixes #4023
This commit is contained in:
Shivam Chahar
2022-04-29 20:54:12 +05:30
committed by GitHub
parent 45099f40f1
commit c1cc94e37c
5 changed files with 15 additions and 5 deletions

View File

@@ -43,6 +43,6 @@ class Public::Api::V1::Inboxes::ContactsController < Public::Api::V1::InboxesCon
end
def permitted_params
params.permit(:identifier, :identifier_hash, :email, :name, :avatar_url, custom_attributes: {})
params.permit(:identifier, :identifier_hash, :email, :name, :avatar_url, :phone_number, custom_attributes: {})
end
end

View File

@@ -1,3 +1,4 @@
json.id resource.id
json.name resource.name
json.email resource.email
json.phone_number resource.phone_number

View File

@@ -10,7 +10,8 @@ RSpec.describe 'Public Inbox Contacts API', type: :request do
post "/public/api/v1/inboxes/#{api_channel.identifier}/contacts"
expect(response).to have_http_status(:success)
data = JSON.parse(response.body)
data = response.parsed_body
expect(data.keys).to include('email', 'id', 'name', 'phone_number', 'pubsub_token', 'source_id')
expect(data['source_id']).not_to eq nil
expect(data['pubsub_token']).not_to eq nil
end
@@ -21,7 +22,8 @@ RSpec.describe 'Public Inbox Contacts API', type: :request do
get "/public/api/v1/inboxes/#{api_channel.identifier}/contacts/#{contact_inbox.source_id}"
expect(response).to have_http_status(:success)
data = JSON.parse(response.body)
data = response.parsed_body
expect(data.keys).to include('email', 'id', 'name', 'phone_number', 'pubsub_token', 'source_id')
expect(data['source_id']).to eq contact_inbox.source_id
expect(data['pubsub_token']).to eq contact_inbox.pubsub_token
end
@@ -33,7 +35,7 @@ RSpec.describe 'Public Inbox Contacts API', type: :request do
params: { name: 'John Smith' }
expect(response).to have_http_status(:success)
data = JSON.parse(response.body)
data = response.parsed_body
expect(data['name']).to eq 'John Smith'
end
end

View File

@@ -10,9 +10,12 @@ properties:
email:
type: string
description: Email of the contact
name:
name:
type: string
description: Name of the contact
phone_number:
type: string
description: Phone number of the contact
avatar_url:
type: string
description: The url to a jpeg, png file for the user avatar

View File

@@ -5268,6 +5268,10 @@
"type": "string",
"description": "Name of the contact"
},
"phone_number": {
"type": "string",
"description": "Phone number of the contact"
},
"avatar_url": {
"type": "string",
"description": "The url to a jpeg, png file for the user avatar"