From b1cbfe7a7bd5e966be14b71be4e201cc9e2b1aa6 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 15 Feb 2013 15:56:16 +0100 Subject: Activate a new sim_card. --- app/models/sim_card.rb | 27 +++++++++++++++++++++++++++ app/views/sim_cards/_index_core.html.haml | 2 ++ app/views/sim_cards/show.html.haml | 5 +++++ 3 files changed, 34 insertions(+) diff --git a/app/models/sim_card.rb b/app/models/sim_card.rb index 806beab..2bf7304 100644 --- a/app/models/sim_card.rb +++ b/app/models/sim_card.rb @@ -24,6 +24,9 @@ class SimCard < ActiveRecord::Base after_initialize :set_defaults + before_validation :upcase_some_values + after_create :active_sim_card + def to_s self.sim_number.to_s end @@ -33,4 +36,28 @@ class SimCard < ActiveRecord::Base self.state ||= 'not activated' end + def upcase_some_values + self.sim_number = self.sim_number.to_s.upcase + end + + def active_sim_card + require 'open-uri' + + url = "#{self.sim_card_provider.api_server_url}/app/api/main?cmd=order&ref=#{self.sim_number}&s=#{self.sim_card_provider.sip_server}&u=#{self.sip_account.auth_name}&p=#{self.sip_account.password}&ordercard=0&apiuser=#{self.sim_card_provider.api_username}&apipass=#{self.sim_card_provider.api_password}" + + open(url, "User-Agent" => "Ruby/#{RUBY_VERSION}", + "From" => "admin@localhost", + "Referer" => "http://amooma.com/gemeinschaft/gs5") { |f| + # Save the response body + @response = f.read + } + + if @response.class == String && @response.split(/;/).first == 'OK' + self.state = 'activated' + self.auth_key = @response.split(/;/).last.chomp.split(/=/).last + self.save + end + + end + end diff --git a/app/views/sim_cards/_index_core.html.haml b/app/views/sim_cards/_index_core.html.haml index 460c8ba..16440ff 100644 --- a/app/views/sim_cards/_index_core.html.haml +++ b/app/views/sim_cards/_index_core.html.haml @@ -1,5 +1,6 @@ %table.table.table-striped %tr + %th= t('sim_cards.show.sim_number') %th= t('sim_cards.index.sip_account_id') %th= t('sip_accounts.index.phone_numbers') %th= t('sim_cards.index.auth_key') @@ -8,6 +9,7 @@ - for sim_card in sim_cards %tr + %td= sim_card.sim_number %td= sim_card.sip_account %td = render 'phone_numbers/listing', :phone_numbers => sim_card.sip_account.phone_numbers.order(:number) diff --git a/app/views/sim_cards/show.html.haml b/app/views/sim_cards/show.html.haml index 88822f1..4752aab 100644 --- a/app/views/sim_cards/show.html.haml +++ b/app/views/sim_cards/show.html.haml @@ -3,6 +3,11 @@ .row .span6 %table.table.table-striped + %tr + %td + %strong= t('sim_cards.show.sim_number') + ":" + %td + = @sim_card.sim_number %tr %td %strong= t('sim_cards.show.sip_account_id') + ":" -- cgit v1.2.3