firstmiler_sms_oauth 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,21 +28,12 @@ module FirstmilerSmsOauth
28
28
  end
29
29
 
30
30
  def handle_response(response)
31
- flag, msg = FirstmilerSmsOauth::FmSmsException.check_response(response)
31
+ flag= FirstmilerSmsOauth::FmSmsException.check_response(response)
32
32
  if flag
33
33
  FirstmilerSmsOauth::FmSmsResponse.new(response)
34
- else
35
- raise msg
36
34
  end
37
35
  end
38
36
 
39
- def exotel_sid
40
- FirstmilerSmsOauth.exotel_sid
41
- end
42
-
43
- def raise_blank_sms_template_exception
44
- raise "Sms Template content should not be blank."
45
- end
46
37
  class << self
47
38
  def send(number, content)
48
39
  new.send(number, content)
@@ -4,14 +4,40 @@ module FirstmilerSmsOauth
4
4
  module FmSmsException
5
5
  module_function
6
6
  def check_response(response)
7
- exotel_hash=Hash.from_xml(response.gsub("\n", ""))
7
+ exotel_hash = Hash.from_xml(response.gsub("\n", ""))
8
8
  if exotel_hash["TwilioResponse"].has_key?("SMSMessage")
9
9
  return true
10
10
  elsif exotel_hash["TwilioResponse"].has_key?("RestException")
11
- return false, exotel_hash["TwilioResponse"]["RestException"]["Message"]
11
+ hash = exotel_hash["TwilioResponse"]["RestException"]
12
+ raise_exception(hash["status"], hash["Message"])
13
+ end
14
+ false
15
+ end
16
+
17
+
18
+ def raise_exception(code, message = nil)
19
+ case code.to_i
20
+ when 400
21
+ raise ParamsError, message
22
+ when 401
23
+ raise AuthenticationError, message
24
+ when 403
25
+ raise ExotelAccountError, message
26
+ when 500
27
+ raise InvalidSmsTemplateError, "Sms Template is invalid, format for sms template should be 'sms content %{key}'"
12
28
  else
13
- return false , "Some unknown exception occured"
29
+ raise UnexpectedError, "#{code} #{message}"
14
30
  end
15
31
  end
16
32
  end
33
+
34
+ class AuthenticationError < StandardError; end
35
+
36
+ class UnexpectedError < StandardError; end
37
+
38
+ class ParamsError < StandardError; end
39
+
40
+ class ExotelAccountError < StandardError; end
41
+
42
+ class InvalidSmsTemplateError < StandardError; end
17
43
  end
@@ -11,7 +11,18 @@ module FirstmilerSmsOauth
11
11
  end
12
12
 
13
13
  def sms_template
14
- FirstmilerSmsOauth.sms_template
14
+ template = FirstmilerSmsOauth.sms_template
15
+ unless is_valid_sms_template?(template)
16
+ FirstmilerSmsOauth::FmSmsException.raise_exception(500)
17
+ end
18
+ end
19
+
20
+ def is_valid_sms_template?(template)
21
+ template.present? && check_valid_formate?(template)
22
+ end
23
+
24
+ def check_valid_formate?(template)
25
+ template.include? '%{key}'
15
26
  end
16
27
  end
17
28
  end
@@ -13,13 +13,8 @@ module FirstmilerSmsOauth
13
13
 
14
14
  module InstanceMethods
15
15
  def send_otp_token
16
- p content = sms_content
17
- begin
18
- FirstmilerSmsOauth::FmSms.send(self.phone_no, content)
19
- rescue Exception => e
20
- delete_user_sms_oauth_tokens
21
- p e.to_s
22
- end
16
+ content = sms_content
17
+ FirstmilerSmsOauth::FmSms.send(self.phone_no, content)
23
18
  end
24
19
 
25
20
  def delete_user_sms_oauth_tokens
@@ -42,7 +37,7 @@ module FirstmilerSmsOauth
42
37
  key
43
38
  end
44
39
 
45
- def varify_otp?(token)
40
+ def verify_otp?(token)
46
41
  flag = all_tokens.include?(token.to_s)
47
42
  delete_user_sms_oauth_tokens
48
43
  flag
@@ -1,3 +1,3 @@
1
1
  module FirstmilerSmsOauth
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firstmiler_sms_oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-09 00:00:00.000000000 Z
12
+ date: 2015-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord