justgiving 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1e658fde7ceee06bfcd7837ef2022e6210282eb
4
- data.tar.gz: 2761b08ee6c72220dae4c3f7f8fdd27d560f965c
3
+ metadata.gz: d29db277bc2f519dbed192ccea0c26abd46153d7
4
+ data.tar.gz: 9ad5a323bf3738a7bbe173b17fd25c6ed045cda5
5
5
  SHA512:
6
- metadata.gz: f798d5e1262583236541a973db3c45d5f445ca506b1a62919a440ca9bd8bed707cc650f5654ebc5276e07225d7446b09942e9b2567ccbc7a97e78efff1b827d4
7
- data.tar.gz: 3caa69636a91847acf09d701511b697661f62f8f4d27f7a925e7d19a87bc231f0a1748a1bd7487663a34b498e6ac576e2f67f91db9ec2c7a658bb9483c727302
6
+ metadata.gz: 56873c41ba229f00db3a0c9ca05d4d3f4e9544d1228a0de07bd150c80f45a6556566f42ff672bd7d0d0410186a239693d344ce063829fbda361359e5bc1f4279
7
+ data.tar.gz: 936c90d79879b719c5c35d1102cbc499b8dd31707470bbbcaf52ec4ff01218ad029931f58fd1b119af7bab4ba07334f2c4d228f50ad7fd11935502bbf8f6e565
@@ -0,0 +1,23 @@
1
+ require_relative "client"
2
+
3
+ module JustGiving
4
+ class Account < Client
5
+
6
+ # Todo:
7
+ # RetrieveAccount
8
+ # AccountRegistration
9
+ # Validate
10
+ # GetFundraisingPagesForUser
11
+ # GetDonationsForUser
12
+ # AccountAvailabilityCheck
13
+ # ChangePassword
14
+ # RequestPasswordReminder
15
+ # GetUserContentRatingHistory
16
+ # RateContent
17
+ # GetContentFeed
18
+ # InterestsGet
19
+ # InterestsAdd
20
+ # InterestsReplace
21
+
22
+ end
23
+ end
@@ -7,6 +7,10 @@ module JustGiving
7
7
  get("charity/#{id}")
8
8
  end
9
9
 
10
+ # def authenticate_charity_account(account_details = {})
11
+ # post("charity/authenticate", account_details)
12
+ # end
13
+
10
14
  def get_events_by_charity_id(id)
11
15
  get("charity/#{id}/events")
12
16
  end
@@ -15,6 +19,12 @@ module JustGiving
15
19
  get("charity/#{id}/donations")
16
20
  end
17
21
 
22
+ # Todo
23
+ # CharityDeleteFundraisingPageAttribution
24
+ # CharityUpdateFundraisingPageAttribution
25
+ # CharityAppendToFundraisingPageAttribution
26
+ # CharityGetFundraisingPageAttribution
27
+
18
28
  def get_charity_categories
19
29
  get("charity/categories")
20
30
  end
@@ -1,13 +1,25 @@
1
1
  require "faraday"
2
2
  require "faraday_middleware"
3
3
  require_relative "error"
4
+ require_relative "logger"
4
5
 
5
6
  module JustGiving
6
7
  class Client
7
8
 
8
- def initialize(token)
9
+ def initialize(token, environment=nil)
10
+ if environment.nil? || environment == :production
11
+ environment = :production
12
+ @base_url = "https://api.justgiving.com/#{@token}/v1/"
13
+ elsif environment == :staging
14
+ @base_url = "https://api-staging.justgiving.com/#{@token}/v1/"
15
+ elsif environment == :sandbox
16
+ @base_url = "https://api-sandbox.justgiving.com/#{@token}/v1/"
17
+ else
18
+ raise Error::InvalidEnvironment
19
+ end
20
+
9
21
  @token = token
10
- @base_url = "https://api.justgiving.com/#{@token}/v1/"
22
+ @environment = environment
11
23
  @connection_defaults = {
12
24
  url: @base_url,
13
25
  headers: {
@@ -15,11 +27,15 @@ module JustGiving
15
27
  'Content-Type' => 'application/json'
16
28
  }
17
29
  }
30
+
18
31
  @connection = Faraday.new(@connection_defaults) do |connection|
32
+ connection.request :json
33
+
19
34
  connection.response :json, :content_type => /\bjson$/
20
- connection.response :logger
21
- connection.adapter Faraday.default_adapter
22
- connection.use Error::RaiseError
35
+
36
+ connection.use Error::RaiseError
37
+ connection.use Logger
38
+ connection.adapter Faraday.default_adapter
23
39
  end
24
40
  end
25
41
 
@@ -28,10 +44,33 @@ module JustGiving
28
44
  def get(path, query=nil)
29
45
  response = @connection.get do |request|
30
46
  request.url path
31
- request.params.merge! query if query
47
+ request.params.merge! query unless query.nil?
48
+ end
49
+ response.body
50
+ end
51
+
52
+ def post(path, payload=nil)
53
+ response = @connection.post do |request|
54
+ request.url path
55
+ request.body = payload unless payload.nil?
32
56
  end
33
57
  response.body
34
58
  end
35
59
 
60
+ def put(path, payload=nil)
61
+ response = @connection.put do |request|
62
+ request.url path
63
+ request.body = payload unless payload.nil?
64
+ end
65
+ response.body
66
+ end
67
+
68
+ def head(path)
69
+ response = @connection.head do |request|
70
+ request.url path
71
+ end
72
+ true # We expect Error::NoResults to be thrown if the query is unsuccessful
73
+ end
74
+
36
75
  end
37
76
  end
@@ -1,9 +1,13 @@
1
1
  module JustGiving
2
2
  module Error
3
3
 
4
- class BadRequest < StandardError; end
5
- class NoResults < StandardError; end
6
- class InternalServerError < StandardError; end
4
+ class ConfigurationError < StandardError; end
5
+ class InvalidEnvironment < ConfigurationError; end
6
+
7
+ class RequestError < StandardError; end
8
+ class BadRequest < RequestError; end
9
+ class NoResults < RequestError; end
10
+ class InternalServerError < RequestError; end
7
11
 
8
12
  class RaiseError < Faraday::Response::Middleware
9
13
 
@@ -0,0 +1,19 @@
1
+ require_relative "client"
2
+
3
+ module JustGiving
4
+ class Event < Client
5
+
6
+ def get_by_event_id(id)
7
+ get("event/#{id}")
8
+ end
9
+
10
+ def get_pages_by_event_id(id, filters = {})
11
+ get("event/#{id}/pages")
12
+ end
13
+
14
+ # def register_event(payload = {})
15
+ # post("event", payload)
16
+ # end
17
+
18
+ end
19
+ end
@@ -0,0 +1,34 @@
1
+ require_relative "client"
2
+
3
+ module JustGiving
4
+ class Fundraising < Client
5
+
6
+ def check_if_page_exists_by_name(name)
7
+ head("fundraising/pages/#{name}")
8
+ end
9
+
10
+ def suggest_page_short_names(preferred)
11
+ get("fundraising/pages/suggest", {'preferredName' => preferred})
12
+ end
13
+
14
+ # Todo:
15
+ # RegisterFundraisingPage
16
+ # GetFundraisingPageDetails
17
+ # GetFundraisingPages
18
+ # GetFundraisingPageDonations
19
+ # UpdateFundraisingPage
20
+ # PageUpdates
21
+ # PageUpdateById
22
+ # PageUpdatesAddPost
23
+ # DeleteFundraisingPageAttribution
24
+ # UpdateFundraisingPageAttribution
25
+ # AppendToFundraisingPageAttribution
26
+ # GetFundraisingPageAttribution
27
+ # UploadImage
28
+ # AddImageToFundraisingPage
29
+ # GetImagesForFundraisingPage
30
+ # AddVideoToFundraisingPage
31
+ # GetVideosForFundraisingPage
32
+
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ require "faraday"
2
+
3
+ module JustGiving
4
+ class Logger < Faraday::Middleware
5
+
6
+ def call(env)
7
+ puts "Request: #{env[:method].to_s.upcase} #{env[:url]}"
8
+ puts "Request body: #{env[:body]}" unless env[:body].nil?
9
+
10
+ @app.call(env).on_complete do
11
+ puts "Response: #{env[:status]} #{env[:body]}" unless env[:status] == 200
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ require_relative "client"
2
+
3
+ module JustGiving
4
+ class Project < Client
5
+
6
+ def get_global_project_by_id(id)
7
+ get("project/global/#{id}")
8
+ end
9
+
10
+ end
11
+ end
@@ -7,6 +7,10 @@ module JustGiving
7
7
  get("charity/search", filters)
8
8
  end
9
9
 
10
+ def search_commemorations(filters = {})
11
+ get("remember/search", filters)
12
+ end
13
+
10
14
  def search_events(filters = {})
11
15
  get("event/search", filters)
12
16
  end
@@ -15,8 +19,8 @@ module JustGiving
15
19
  get("fundraising/search", filters)
16
20
  end
17
21
 
18
- def search_commemorations(filters = {})
19
- get("remember/search", filters)
22
+ def search_projects(filters = {})
23
+ get("project", filters)
20
24
  end
21
25
 
22
26
  def search_teams(filters = {})
@@ -0,0 +1,19 @@
1
+ require_relative "client"
2
+
3
+ module JustGiving
4
+ class Team < Client
5
+
6
+ def get_team_by_name(name)
7
+ get("team/#{name}")
8
+ end
9
+
10
+ def check_if_team_exists_by_name(name)
11
+ head("team/#{name}")
12
+ end
13
+
14
+ # Todo:
15
+ # CreateOrUpdateTeam
16
+ # JoinTeam
17
+
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module JustGiving
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/justgiving.rb CHANGED
@@ -1,11 +1,16 @@
1
1
  module JustGiving
2
2
 
3
3
  # Clients
4
+ require_relative "justgiving/account"
4
5
  require_relative "justgiving/charity"
5
6
  require_relative "justgiving/country"
6
7
  require_relative "justgiving/currency"
7
8
  require_relative "justgiving/donation"
9
+ require_relative "justgiving/event"
10
+ require_relative "justgiving/fundraising"
11
+ require_relative "justgiving/project"
8
12
  require_relative "justgiving/search"
13
+ require_relative "justgiving/team"
9
14
 
10
15
  require_relative "justgiving/error"
11
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: justgiving
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Dent
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-21 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,13 +80,19 @@ files:
80
80
  - Rakefile
81
81
  - justgiving.gemspec
82
82
  - lib/justgiving.rb
83
+ - lib/justgiving/account.rb
83
84
  - lib/justgiving/charity.rb
84
85
  - lib/justgiving/client.rb
85
86
  - lib/justgiving/country.rb
86
87
  - lib/justgiving/currency.rb
87
88
  - lib/justgiving/donation.rb
88
89
  - lib/justgiving/error.rb
90
+ - lib/justgiving/event.rb
91
+ - lib/justgiving/fundraising.rb
92
+ - lib/justgiving/logger.rb
93
+ - lib/justgiving/project.rb
89
94
  - lib/justgiving/search.rb
95
+ - lib/justgiving/team.rb
90
96
  - lib/justgiving/version.rb
91
97
  homepage: http://www.github.com/jackdent/justgiving
92
98
  licenses: