sklik-api 0.0.5 → 0.0.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -46,6 +46,9 @@ Example of input hash
46
46
  #variable where are saved current data from system
47
47
  @campaign_data = nil
48
48
 
49
+ #variable for storing errors
50
+ @errors = []
51
+
49
52
  #initialize adgroups
50
53
  @adgroups = []
51
54
  if args[:ad_groups] && args[:ad_groups].size > 0
@@ -58,6 +61,10 @@ Example of input hash
58
61
  super args
59
62
  end
60
63
 
64
+ def errors
65
+ @errors
66
+ end
67
+
61
68
  def self.find args = {}
62
69
  out = []
63
70
  super(NAME, args[:customer_id]).each do |campaign|
@@ -173,13 +180,29 @@ Example of input hash
173
180
  remove if (@args[:status] == :stopped) || (@args[:status].nil? && before_status == :stopped)
174
181
  else #do save
175
182
  #create campaign
176
- create
183
+ begin
184
+ create
185
+ rescue Exception => e
186
+ @errors << e.message
187
+ return false
188
+ end
177
189
 
178
- #create adgroups
179
- @adgroups.each{ |adgroup| adgroup.save }
190
+ begin
191
+ #create adgroups
192
+ @adgroups.each{ |adgroup| adgroup.save }
180
193
 
181
- @campaign_data = @args
182
- return true
194
+ @campaign_data = @args
195
+ raise ArgumentError, "Problem with creating campaign datas" unless @errors.size == 0
196
+ return true
197
+ rescue Exception => e
198
+ @errors << e.message
199
+ #update name
200
+ update :name => "#{@args[:name]} FAILED ON CREATION - #{Time.now.strftime("%Y.%m.%d %H:%M:%S")}"
201
+ #remove campaign
202
+ remove
203
+ #return false because error occured
204
+ return false
205
+ end
183
206
  end
184
207
  end
185
208
  end
@@ -114,10 +114,38 @@ Example of input hash
114
114
  create
115
115
 
116
116
  #create adtexts
117
- @adtexts.each{ |adtext| adtext.save }
117
+ @adtexts.each do |adtext|
118
+ begin
119
+ adtext.save
120
+ rescue Exception => e
121
+ #take care about error message -> do it nicer
122
+ if /There is error from sklik ad.create: Invalid parameters/ =~ e.message
123
+ @campaign.errors << "Problem with creating #{adtext.args} in adgroup #{@args[:name]}"
124
+ else
125
+ @campaign.errors << e.message
126
+ end
127
+ end
128
+ end
129
+
118
130
 
119
131
  #create keywords
120
- @keywords.each{ |keyword| keyword.save }
132
+ keywords_error = []
133
+ @keywords.each do |keyword|
134
+ begin
135
+ keyword.save
136
+ rescue Exception => e
137
+ #take care about error message -> do it nicer
138
+ if /Sklik returned: keyword.create: Invalid data in request/ =~ e.message
139
+ keywords_error << e.message.split("{:name=>\"").last.split("\", :matchType").first
140
+ else
141
+ @campaign.errors << e.message
142
+ end
143
+ end
144
+ end
145
+ if keywords_error.size > 0
146
+ @campaign.errors << "Problem with creating keywords: #{keywords_error.join(", ")} in adgroup #{@args[:name]}"
147
+ end
148
+
121
149
  end
122
150
  end
123
151
 
@@ -62,18 +62,19 @@ class SklikApi
62
62
  if param[:status] == 200
63
63
  return yield(param)
64
64
  elsif param[:status] == 406
65
- raise ArgumentError, "Sklik returned: #{param[:statusMessage]} \n #{args.inspect}"
65
+ raise ArgumentError, "Sklik returned: #{method}: #{param[:statusMessage]} #{args.inspect}"
66
66
  elsif param[:statusMessage] == "Session has expired or is malformed."
67
67
  raise ArgumentError, "session has expired"
68
68
  else
69
69
  raise ArgumentError, "There is error from sklik #{method}: #{param[:statusMessage]}"
70
70
  end
71
71
  rescue Exception => e
72
+ retry_count -= 1
72
73
  pp "Rescuing from request by: #{e.class} - #{e.message}"
73
74
  #if session expired then get new one! and retry
74
75
  get_session(true) if e.message == "session has expired"
75
-
76
- retry_count -= 1
76
+ #don't retry if there is problem with Invalid paramaters od Data
77
+ retry_count = 0 if e.message.include?("Invalid")
77
78
  retry if retry_count > 0
78
79
  raise e
79
80
  end
data/sklik-api.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "sklik-api"
8
- s.version = "0.0.5"
8
+ s.version = "0.0.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"]
@@ -81,7 +81,9 @@ class CampaignTest < Test::Unit::TestCase
81
81
  context "create" do
82
82
  setup do
83
83
  @campaign = SklikApi::Campaign.new(@test_campaign_hash)
84
- @campaign.save
84
+ unless @campaign.save
85
+ puts "ERROR: \n #{@campaign.errors.join("\n")}"
86
+ end
85
87
  end
86
88
 
87
89
  should "be created with right parameters and updated" do
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.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &70147319983680 !ruby/object:Gem::Requirement
16
+ requirement: &70136834352200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70147319983680
24
+ version_requirements: *70136834352200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: unicode
27
- requirement: &70147319982980 !ruby/object:Gem::Requirement
27
+ requirement: &70136834351460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.4.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70147319982980
35
+ version_requirements: *70136834351460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: text
38
- requirement: &70147320016580 !ruby/object:Gem::Requirement
38
+ requirement: &70136834385140 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.2.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70147320016580
46
+ version_requirements: *70136834385140
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: i18n
49
- requirement: &70147320015980 !ruby/object:Gem::Requirement
49
+ requirement: &70136834384520 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.6.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70147320015980
57
+ version_requirements: *70136834384520
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: activesupport
60
- requirement: &70147320015280 !ruby/object:Gem::Requirement
60
+ requirement: &70136834383820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 3.1.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70147320015280
68
+ version_requirements: *70136834383820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-test
71
- requirement: &70147320014580 !ruby/object:Gem::Requirement
71
+ requirement: &70136834383140 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70147320014580
79
+ version_requirements: *70136834383140
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda-context
82
- requirement: &70147320014020 !ruby/object:Gem::Requirement
82
+ requirement: &70136834382540 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70147320014020
90
+ version_requirements: *70136834382540
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: turn
93
- requirement: &70147320013440 !ruby/object:Gem::Requirement
93
+ requirement: &70136834381980 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.8.2
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70147320013440
101
+ version_requirements: *70136834381980
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: minitest
104
- requirement: &70147320012880 !ruby/object:Gem::Requirement
104
+ requirement: &70136834381440 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70147320012880
112
+ version_requirements: *70136834381440
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: ansi
115
- requirement: &70147320012240 !ruby/object:Gem::Requirement
115
+ requirement: &70136834380720 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 1.2.5
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70147320012240
123
+ version_requirements: *70136834380720
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: jeweler
126
- requirement: &70147320011500 !ruby/object:Gem::Requirement
126
+ requirement: &70136834380060 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 1.8.3
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70147320011500
134
+ version_requirements: *70136834380060
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: fakeweb
137
- requirement: &70147320010900 !ruby/object:Gem::Requirement
137
+ requirement: &70136834379420 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70147320010900
145
+ version_requirements: *70136834379420
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: thin
148
- requirement: &70147320010280 !ruby/object:Gem::Requirement
148
+ requirement: &70136834378820 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *70147320010280
156
+ version_requirements: *70136834378820
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: shotgun
159
- requirement: &70147320009700 !ruby/object:Gem::Requirement
159
+ requirement: &70136834378220 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *70147320009700
167
+ version_requirements: *70136834378220
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: rcov
170
- requirement: &70147320029580 !ruby/object:Gem::Requirement
170
+ requirement: &70136834398080 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - =
@@ -175,7 +175,7 @@ dependencies:
175
175
  version: 0.9.10
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *70147320029580
178
+ version_requirements: *70136834398080
179
179
  description: Sklik advertising PPC api for creating campaigns and updating them when
180
180
  they runs
181
181
  email: ondrej@bartas.cz
@@ -222,7 +222,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
222
  version: '0'
223
223
  segments:
224
224
  - 0
225
- hash: -1450517545880020329
225
+ hash: -1796875428906502888
226
226
  required_rubygems_version: !ruby/object:Gem::Requirement
227
227
  none: false
228
228
  requirements: