-
Notifications
You must be signed in to change notification settings - Fork 132
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #183 from line/audience-group-api
Add audience API endpoints
- Loading branch information
Showing
3 changed files
with
311 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
require 'spec_helper' | ||
require 'json' | ||
require_relative 'mock_http_client' | ||
|
||
describe Line::Bot::Client do | ||
def generate_client | ||
Line::Bot::Client.new do |config| | ||
config.channel_id = '1234567' | ||
config.channel_token = 'channelToken' | ||
config.channel_secret = 'channelSecret' | ||
config.httpclient = MockHTTPClient.new | ||
end | ||
end | ||
|
||
it 'execute create_user_id_audience' do | ||
payload = { | ||
description: 'create_user_id_audience 1', | ||
audiences: [{id: 'u123abc'}] | ||
} | ||
|
||
response = generate_client.create_user_id_audience(payload) | ||
|
||
expect(response).to eq( | ||
method: :post, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/upload', | ||
payload: payload.to_json | ||
) | ||
end | ||
|
||
it 'execute update_user_id_audience' do | ||
payload = { | ||
audienceGroupId: 123, | ||
description: 'audience 1', | ||
audiences: [{id: 'u123abc'}] | ||
} | ||
|
||
response = generate_client.update_user_id_audience(payload) | ||
|
||
expect(response).to eq( | ||
method: :put, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/upload', | ||
payload: payload.to_json | ||
) | ||
end | ||
|
||
it 'execute create_click_audience' do | ||
payload = { | ||
description: 'audience 2', | ||
requestId: 'a523d8b2-4728-4ac5-ad4f-b176afd43267' | ||
} | ||
|
||
response = generate_client.create_click_audience(payload) | ||
|
||
expect(response).to eq( | ||
method: :post, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/click', | ||
payload: payload.to_json | ||
) | ||
end | ||
|
||
it 'execute create_impression_audience' do | ||
payload = { | ||
description: 'audience 3', | ||
requestId: 'a523d8b2-4728-4ac5-ad4f-b176afd43267' | ||
} | ||
|
||
response = generate_client.create_impression_audience(payload) | ||
|
||
expect(response).to eq( | ||
method: :post, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/imp', | ||
payload: payload.to_json | ||
) | ||
end | ||
|
||
it 'execute rename_audience' do | ||
response = generate_client.rename_audience(123, 'audience 10') | ||
|
||
expect(response).to eq( | ||
method: :put, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/123/updateDescription', | ||
payload: {description: 'audience 10'}.to_json | ||
) | ||
end | ||
|
||
it 'execute delete_audience' do | ||
response = generate_client.delete_audience(123) | ||
|
||
expect(response).to eq( | ||
method: :delete, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/123', | ||
payload: nil | ||
) | ||
end | ||
|
||
it 'execute get_audience' do | ||
response = generate_client.get_audience(123) | ||
|
||
expect(response).to eq( | ||
method: :get, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/123', | ||
payload: nil | ||
) | ||
end | ||
|
||
it 'execute get_audiences' do | ||
params = {page: 2, status: 'READY'} | ||
response = generate_client.get_audiences(params) | ||
|
||
expect(response).to eq( | ||
method: :get, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/list?page=2&status=READY', | ||
payload: nil | ||
) | ||
end | ||
|
||
it 'execute get_audience_authority_level' do | ||
response = generate_client.get_audience_authority_level | ||
|
||
expect(response).to eq( | ||
method: :get, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/authorityLevel', | ||
payload: nil | ||
) | ||
end | ||
|
||
it 'execute update_audience_authority_level' do | ||
response = generate_client.update_audience_authority_level('PRIVATE') | ||
|
||
expect(response).to eq( | ||
method: :put, | ||
url: 'https://api.line.me/v2/bot/audienceGroup/authorityLevel', | ||
payload: {authorityLevel: 'PRIVATE'}.to_json | ||
) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
class MockHTTPClient | ||
def get(url, _header = {}) | ||
build_mock_response(:get, url, nil) | ||
end | ||
|
||
def post(url, payload, _header = {}) | ||
build_mock_response(:post, url, payload) | ||
end | ||
|
||
def put(url, payload, _header = {}) | ||
build_mock_response(:put, url, payload) | ||
end | ||
|
||
def delete(url, _header = {}) | ||
build_mock_response(:delete, url, nil) | ||
end | ||
|
||
private | ||
|
||
def build_mock_response(method, url, payload) | ||
{ | ||
method: method, | ||
url: url, | ||
payload: payload | ||
} | ||
end | ||
end |