* VRFS-3968 - refine responses for jamblaster pairing API
This commit is contained in:
parent
4c3c23606a
commit
681b27a4b4
|
|
@ -335,4 +335,5 @@ whitelist.sql
|
|||
teacher_student_flags.sql
|
||||
add_sale_source_col.sql
|
||||
jamblaster_v2.sql
|
||||
acapella_rename.sql
|
||||
acapella_rename.sql
|
||||
jamblaster_pairing_active.sql
|
||||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE jamblaster_pairing_requests ADD COLUMN active BOOLEAN NOT NULL DEFAULT FALSE;
|
||||
|
|
@ -23,6 +23,10 @@ module JamRuby
|
|||
self.serial_no = nil if self.serial_no == ''
|
||||
end
|
||||
|
||||
def most_recent_pairing
|
||||
jamblaster_pairing_requests.where(active: true).first
|
||||
end
|
||||
|
||||
class << self
|
||||
|
||||
@@mq_router = MQRouter.new
|
||||
|
|
@ -37,4 +41,4 @@ module JamRuby
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -12,5 +12,17 @@ module JamRuby
|
|||
def key
|
||||
sibling_key
|
||||
end
|
||||
|
||||
def activate(key)
|
||||
JamblasterPairingRequest.transaction do
|
||||
JamblasterPairingRequest.where(jamblaster_id: jamblaster_id).update_all(active: false)
|
||||
self.active = true
|
||||
self.sibling_key = key
|
||||
if !self.save
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -903,7 +903,6 @@ FactoryGirl.define do
|
|||
association :jamblaster, factory: :jamblaster
|
||||
|
||||
sequence(:jamblaster_client_id ) { |n| "jamblaster_client_id#{n}" }
|
||||
sequence(:sibling_client_id ) { |n| "sibling_client_id#{n}" }
|
||||
sequence(:sibling_key ) { |n| "sibling_key#{n}" }
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ require 'spec_helper'
|
|||
|
||||
describe Jamblaster do
|
||||
|
||||
let(:jamblaster) {FactoryGirl.create(:jamblaster)}
|
||||
let(:user) {FactoryGirl.create(:user)}
|
||||
let(:jamblaster) { FactoryGirl.create(:jamblaster) }
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
|
||||
it "can be created" do
|
||||
FactoryGirl.create(:jamblaster)
|
||||
|
|
@ -12,6 +12,28 @@ describe Jamblaster do
|
|||
it "can associate to users" do
|
||||
jamblaster.users.should eq([])
|
||||
user.jamblasters.should eq([])
|
||||
end
|
||||
|
||||
describe "most_recent_pairings" do
|
||||
it "basic funnction" do
|
||||
|
||||
jamblaster.most_recent_pairing.should be nil
|
||||
|
||||
pairing1 = FactoryGirl.create(:jamblaster_pairing_request, user: user, jamblaster: jamblaster, vtoken: 'token2', sibling_key: nil)
|
||||
|
||||
jamblaster.most_recent_pairing.should be nil
|
||||
|
||||
pairing1.activate('abc')
|
||||
|
||||
jamblaster.most_recent_pairing.should eql pairing1
|
||||
|
||||
pairing2 = FactoryGirl.create(:jamblaster_pairing_request, user: user, jamblaster: jamblaster, sibling_key: 'key1', vtoken: 'token1')
|
||||
|
||||
jamblaster.most_recent_pairing.should eql pairing1
|
||||
|
||||
pairing2.activate('key2')
|
||||
|
||||
jamblaster.most_recent_pairing.should eql pairing2
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -174,10 +174,9 @@ class ApiJamblastersController < ApiController
|
|||
jamblaster.save!
|
||||
end
|
||||
|
||||
pairing_request.activate(key)
|
||||
|
||||
pairing_request.sibling_key = key
|
||||
|
||||
if !pairing_request.save
|
||||
if pairing_request.errors.any?
|
||||
respond_with_model(pairing_request)
|
||||
else
|
||||
Jamblaster.send_pair_attempt(jbid, user_id, key)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@ object @jamblaster
|
|||
|
||||
attributes :id, :serial_no, :client_id
|
||||
|
||||
child(:jamblaster_pairing_requests => :pairings) {
|
||||
attributes :id, :user_id, :sibling_client_id, :vtoken, :key
|
||||
child(:most_recent_pairing => :pairing) do |pairing|
|
||||
attributes :key
|
||||
end
|
||||
|
||||
child(:users => :users) {
|
||||
attributes :id
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ object @jamblasters
|
|||
|
||||
attributes :id, :serial_no, :client_id
|
||||
|
||||
child(:jamblaster_pairing_requests => :pairings) {
|
||||
attributes :id, :user_id, :sibling_client_id, :jamblaster_client_id, :vtoken, :key
|
||||
}
|
||||
child(:most_recent_pairing => :pairing) do |pairing|
|
||||
attributes :key, :user_id
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,24 @@ describe ApiJamblastersController do
|
|||
get :auth_users, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no}
|
||||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json["pairings"].length.should eq(0)
|
||||
json["pairing"].should be nil
|
||||
json["users"].length.should eq(1)
|
||||
json["users"][0]["id"].should eql user.id
|
||||
|
||||
pairing1 = FactoryGirl.create(:jamblaster_pairing_request, user: user, jamblaster: jamblaster, vtoken:'token2', sibling_key:nil)
|
||||
|
||||
get :auth_users, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no}
|
||||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json["pairing"].should be nil
|
||||
|
||||
pairing1.activate('abc')
|
||||
pairing1.errors.any?.should be false
|
||||
|
||||
get :auth_users, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no}
|
||||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json["pairing"]["key"].should eql 'abc'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -67,7 +84,8 @@ describe ApiJamblastersController do
|
|||
get :auth_users, {:format => 'json', jbid: jamblaster.client_id, serial_no: jamblaster.serial_no}
|
||||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json["pairings"].length.should eq(0)
|
||||
json["pairing"].should be nil
|
||||
json["users"].length.should eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -245,8 +263,8 @@ describe ApiJamblastersController do
|
|||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json.length.should eq(1)
|
||||
vtoken = json[0]["pairings"][0]["vtoken"]
|
||||
vtoken.should eq("vtoken4")
|
||||
key = json[0]["pairing"]["key"]
|
||||
key.should eq("abc")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -277,8 +295,10 @@ describe ApiJamblastersController do
|
|||
response.status.should == 200
|
||||
json = JSON.parse(response.body)
|
||||
json.length.should eq(1)
|
||||
vtoken = json[0]["pairings"][0]["vtoken"]
|
||||
vtoken.should eq("vtoken4")
|
||||
key = json[0]["pairing"]["key"]
|
||||
key.should eq("abc")
|
||||
|
||||
puts response.body
|
||||
|
||||
jamblaster.reload
|
||||
jamblaster.users.include?(user).should be true
|
||||
|
|
|
|||
|
|
@ -872,7 +872,6 @@ FactoryGirl.define do
|
|||
association :jamblaster, factory: :jamblaster
|
||||
|
||||
sequence(:jamblaster_client_id ) { |n| "jamblaster_client_id#{n}" }
|
||||
sequence(:sibling_client_id ) { |n| "sibling_client_id#{n}" }
|
||||
sequence(:sibling_key ) { |n| "sibling_key#{n}" }
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue