brownpapertickets 0.0.6 → 0.0.7

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brownpapertickets (0.0.5)
4
+ brownpapertickets (0.0.6)
5
5
  hpricot (>= 0.8.3)
6
6
  httparty (>= 0.6.1)
7
7
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.7
@@ -5,6 +5,7 @@ require File.join(File.dirname(__FILE__), 'brownpapertickets/base')
5
5
  require File.join(File.dirname(__FILE__), 'brownpapertickets/event')
6
6
  require File.join(File.dirname(__FILE__), 'brownpapertickets/date')
7
7
  require File.join(File.dirname(__FILE__), 'brownpapertickets/price')
8
+ require File.join(File.dirname(__FILE__), 'brownpapertickets/orderlist')
8
9
  require File.join(File.dirname(__FILE__), 'brownpapertickets/httpost')
9
10
  module BrownPaperTickets
10
11
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  module BrownPaperTickets
10
10
  class Base
11
- attr_reader :id, :account, :event, :date, :price
11
+ attr_reader :id, :account, :event, :date, :price, :orderlist
12
12
 
13
13
  # Needs the brownpapersticker's credentials (id and account),
14
14
  # creates a new instance of event, date and price
@@ -20,6 +20,7 @@ module BrownPaperTickets
20
20
  @event = BrownPaperTickets::Event.new(self.id, self.account)
21
21
  @date = BrownPaperTickets::Date.new(self.id, self.account)
22
22
  @price = BrownPaperTickets::Price.new(self.id, self.account)
23
+ @orderlist = BrownPaperTickets::Orderlist.new(self.id, self.account)
23
24
  end
24
25
 
25
26
  # Returns the event
@@ -34,6 +35,9 @@ module BrownPaperTickets
34
35
  def prices
35
36
  @price
36
37
  end
38
+ def orderlists
39
+ @orderlist
40
+ end
37
41
  end
38
42
 
39
43
  end
@@ -0,0 +1,142 @@
1
+ require 'hpricot'
2
+ module BrownPaperTickets
3
+ class Orderlist
4
+ include HTTParty
5
+ base_uri "https://www.brownpapertickets.com/api2"
6
+
7
+ attr_reader :attributes, :server_response
8
+
9
+ REQUIRED_ATTR=["date_id", "price_id", "event_id"]
10
+
11
+ ATTRS=["event_id", "date_id", "price_id"]
12
+
13
+ def initialize(id, account, attributes={})
14
+ @@id = id
15
+ @@account = account
16
+ @attributes = attributes
17
+ end
18
+
19
+ def new(params={})
20
+ Event.new(@@id,@@account, params, event_id)
21
+ end
22
+
23
+ def method_missing(m, *args, &block)
24
+ if ATTRS.include?(m.to_s.gsub("=",""))
25
+ if m.to_s.include?("=")
26
+ self.attributes[m.to_s.gsub("=","")] = *args.to_s
27
+ else
28
+ result = self.attributes[m.to_s]
29
+ end
30
+ else
31
+ raise NoMethodError.new("Method missing #{m}")
32
+ end
33
+ end
34
+
35
+ def validates_required_attr
36
+ missing_field = []
37
+ REQUIRED_ATTR.each do |attr|
38
+ missing_field << attr if self.send(attr,nil,nil).blank?
39
+ end
40
+ unless missing_field.blank?
41
+ @server_response = "The following attributes are missing:"
42
+ missing_field.each{|att| @server_response = @server_response + " " + att }
43
+ return false
44
+ end
45
+ return true
46
+ end
47
+
48
+ def create_report
49
+ body = {"id" => @@id, "account" => @@account, "event_id" => event_id, "date_id"=>date_id, "price_id" => price_id}
50
+ query = self.attributes.merge("id" => @@id, "account" => @@account,"event_id" => event_id, "date_id"=>date_id, "price_id" => price_id )
51
+ response = BrownPaperTickets::Httpost.new(Net::HTTP::Get, "https://www.brownpapertickets.com/api2/orderlist",:query => query)
52
+ response.options[:body] = query
53
+ st = response.perform
54
+ xml = Hpricot(st.response.body)
55
+ p xml
56
+ end
57
+
58
+ def create(params={})
59
+ date = Event.new(@@id,@@account, params)
60
+ date.save!
61
+ end
62
+
63
+ # resultcode
64
+ # 300055 - Required variables are missing
65
+ # 300056 - Unknown error
66
+ # 300057 - Unable to find event
67
+ # 300058 - Event does not belong to account
68
+ # 300059 - Unknown error
69
+ # 300060 - Unable to find date
70
+ # 300061 - Required variables are missing
71
+ # 300062 - Unable to update date
72
+ # 000000 - Success
73
+
74
+
75
+ def process_update_response(response)
76
+ case response
77
+ when "000000" then
78
+ @server_response = "Success"
79
+ return true
80
+ when "300055" then
81
+ @server_response = "Required variables are missing"
82
+ return false
83
+ when "300056" then
84
+ @server_response = "Unknown error"
85
+ return false
86
+ when "300057" then
87
+ @server_response = "Unable to find event"
88
+ return false
89
+ when "300058" then
90
+ @server_response = "Event does not belong to account"
91
+ return false
92
+ when "300059" then
93
+ @server_response = "Unknown error"
94
+ return false
95
+ when "300060" then
96
+ @server_response = "Unable to find date"
97
+ return false
98
+ when "300061" then
99
+ @server_response = "Required variables are missing"
100
+ return false
101
+ when "300062" then
102
+ @server_response = "Unable to update date"
103
+ return false
104
+ else
105
+ @server_response = "Unknown error"
106
+ return false
107
+ end
108
+ end
109
+
110
+ def process_create_response(response, event_id)
111
+ case response
112
+ when "0000" then
113
+ self.date_id = date_id
114
+ @server_response = "success"
115
+ return true
116
+ when "300038" then
117
+ @server_response = "Required variables are missing"
118
+ return false
119
+ when "300039" then
120
+ @server_response = "Unknown error while posting info to DB"
121
+ return false
122
+ when "300040" then
123
+ @server_response = "Event does not belong to user"
124
+ return false
125
+ when "300041" then
126
+ @server_response = "Unable to add date"
127
+ return false
128
+ else
129
+ @server_response = "Unknown error"
130
+ return false
131
+ end
132
+ end
133
+
134
+ def server_response
135
+ @server_response
136
+ end
137
+
138
+ def attributes
139
+ @attributes
140
+ end
141
+ end
142
+ end
@@ -1,3 +1,3 @@
1
1
  module BrownPaperTickets
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brownpapertickets
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 6
10
- version: 0.0.6
9
+ - 7
10
+ version: 0.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alvaro Insignares
@@ -114,6 +114,7 @@ files:
114
114
  - lib/brownpapertickets/date.rb
115
115
  - lib/brownpapertickets/event.rb
116
116
  - lib/brownpapertickets/httpost.rb
117
+ - lib/brownpapertickets/orderlist.rb
117
118
  - lib/brownpapertickets/price.rb
118
119
  - lib/brownpapertickets/version.rb
119
120
  - lib/brownpapertickets/xmlparse.rb