sklik-api 0.1.5 → 0.1.6

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.
@@ -25,9 +25,13 @@ SklikApi.use_rollback = true
25
25
 
26
26
  # you can set it before every action to sklik api, if you have multiple accounts :-)
27
27
  SklikApi::Access.set(
28
- :email => "your_email@seznam.cz",
28
+ :email => "your_email@seznam.cz",
29
29
  :password => "password",
30
- # :customer_id => 1112 # (optional) - this will switch you into connected account and all creation will be performed there
30
+ :session => "123456789000000000", # optional when you store session (14 days expiration)
31
+ # outside your running code (in database etc.)
32
+ # this will lower your request numbers (no need for getting new session for every call)
33
+ # :customer_id => 1112 # (optional) - this will switch you into connected account
34
+ # and all creation will be performed there
31
35
  )
32
36
  #this setting can be changed on the fly!
33
37
  ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.5
1
+ 0.1.6
@@ -10,7 +10,10 @@ class SklikApi::Access
10
10
 
11
11
  #save argument to right places
12
12
  @args = args
13
-
13
+
14
+ #save session if present
15
+ @session = args.has_key?(:session) ? args[:session] : nil
16
+
14
17
  #return this object!
15
18
  return self
16
19
  end
@@ -38,6 +41,21 @@ class SklikApi::Access
38
41
  def self.password
39
42
  @args[:password].to_s
40
43
  end
44
+
45
+ #Set session
46
+ def self.session= session
47
+ session
48
+ end
49
+
50
+ #Get session
51
+ def self.session
52
+ @session
53
+ end
54
+
55
+ #Has setted session
56
+ def self.session?
57
+ !@session.nil?
58
+ end
41
59
 
42
60
  #if you change Access credentials change uniq identifier ->
43
61
  #used for stroing sessions for multiple logins
@@ -34,21 +34,36 @@ class SklikApi
34
34
  #every taxonomy has its own session!
35
35
  def get_session force = false
36
36
  @session ||= {}
37
+ #try to get session from cache
37
38
  if @session.has_key?(SklikApi::Access.uniq_identifier) && !force
38
39
  @session[SklikApi::Access.uniq_identifier]
40
+
41
+ #try to use session from Access settings
42
+ elsif SklikApi::Access.session? && !force
43
+ return @session[SklikApi::Access.uniq_identifier] = SklikApi::Access.session
44
+
45
+ #else retrive new session
39
46
  else
40
47
  begin
41
48
  SklikApi.log(:debug, "Getting session for #{SklikApi::Access.email}")
42
49
  param = connection.call("client.login", SklikApi::Access.email, SklikApi::Access.password).symbolize_keys
43
50
  SklikApi.log(:debug, "Session received: #{param.inspect}")
44
51
 
45
- if param[:status] == 401
46
- raise ArgumentError, "Invalid login for: #{SklikApi::Access.email}"
47
- elsif param[:status] == 200
52
+ #good session
53
+ if param[:status] == 200
54
+ #SET NEW SESSION
55
+ SklikApi::Access.session = param[:session]
48
56
  return @session[SklikApi::Access.uniq_identifier] = param[:session]
57
+
58
+ #bad login
59
+ elsif param[:status] == 401
60
+ raise ArgumentError, "Invalid login for: #{SklikApi::Access.email}"
61
+
62
+ #Something else went wrong
49
63
  else
50
64
  raise ArgumentError, param[:statusMessage]
51
65
  end
66
+
52
67
  rescue XMLRPC::FaultException => e
53
68
  raise ArgumentError, "#{e.faultString}, #{e.faultCode}"
54
69
  rescue Exception => e
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "sklik-api"
8
- s.version = "0.1.5"
8
+ s.version = "0.1.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ondrej Bartas"]
12
- s.date = "2013-07-16"
12
+ s.date = "2013-08-08"
13
13
  s.description = "Sklik advertising PPC api for creating campaigns and updating them when they runs"
14
14
  s.email = "ondrej@bartas.cz"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sklik-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
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: 2013-07-16 00:00:00.000000000 Z
12
+ date: 2013-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -304,7 +304,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
304
304
  version: '0'
305
305
  segments:
306
306
  - 0
307
- hash: 4110349452567973535
307
+ hash: -3972173860568696425
308
308
  required_rubygems_version: !ruby/object:Gem::Requirement
309
309
  none: false
310
310
  requirements: