sklik-api 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: