authorr-api 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MjcwMWM5Y2MxMGViN2MxNWUzNWRiNTMyM2Q5Y2MzMzE1ZTI3MmIyNg==
5
+ data.tar.gz: !binary |-
6
+ NDI1NDU1OWI3M2ZiNDE3NTQ4MjE5NDU4NTU0MDg0N2U0MzVmZTQ0YQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZWQ2OTI1Zjc0ODNjNDE4YTg4NjE4OTA3NGU2NTlkNzA1NmFhNjgzNWEyY2My
10
+ ZGI1NGFjYzI0MDhjY2UwNzc0ZjU2ZDk0OWRlN2MwZWJiNDZmYWRkNDgyOWY4
11
+ YmU5MzcwYmY4YmJkZDEwZTE3OGI4OTdmYjQxYTliZWM5NTliMjU=
12
+ data.tar.gz: !binary |-
13
+ MGYzYjMxMDgzOWI0MzRjNmVmN2JkMDRkMDFiY2FmODc3YTQ0ZDczNjMxNWFm
14
+ OTM2YTcyMzNhOTE4MDRjOWFiNDNjMWVjYmI1NjU3MWQxZjFjMmZjZTc2Yzdj
15
+ N2UxMGNhMGY1MWNjZDc4YTE1NjQ2Zjg2MWVjMTEzYmVhZTA0NmU=
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Velluto
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Authorr API
2
+
3
+ This library is used to access The Authorr API.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'authorr-api'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install authorr-api
18
+
19
+ ## Usage
20
+
21
+ Include the gem on your project and use it like this:
22
+
23
+ require 'authorr-api'
24
+
25
+ api = AuthorrCustomer.new('<api_key>')
26
+ api.desired_method
27
+
28
+ ## Contributing
29
+
30
+ 1. Fork it
31
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
32
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
33
+ 4. Push to the branch (`git push origin my-new-feature`)
34
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,17 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/authorr-api/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Velluto"]
6
+ gem.email = ["authorr@authorr.com"]
7
+ gem.description = %q{Authorr API for Customers and Authors}
8
+ gem.summary = %q{Authorr API}
9
+ gem.homepage = "http://www.authorr.com"
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "authorr-api"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Authorr::Api::VERSION
17
+ end
@@ -0,0 +1,4 @@
1
+ require "authorr-api/version"
2
+ require "authorr-api/customers"
3
+ require "authorr-api/authors"
4
+
@@ -0,0 +1,147 @@
1
+
2
+ require 'net/http'
3
+ require 'uri'
4
+ require 'json'
5
+
6
+ class AuthorrCustomer
7
+ class AuthorrCustomerException < RuntimeError
8
+ end
9
+
10
+ def initialize(api_key, base_path = nil)
11
+ @base_path = base_path || 'http://app.authorr.com'
12
+ @api_key = api_key
13
+ end
14
+
15
+ def exec_get(uri)
16
+ uri = URI(uri)
17
+ result = Net::HTTP.get_response(uri)
18
+ if result.is_a?(Net::HTTPSuccess)
19
+ JSON.parse(result.body)
20
+ else
21
+ raise AuthorrCustomerException.new result.body
22
+ end
23
+ end
24
+
25
+ def exec_post(parameters, method, uri)
26
+ uri = URI(uri)
27
+ req = case method
28
+ when 'put'
29
+ Net::HTTP::Put.new(uri.request_uri)
30
+ when 'post'
31
+ Net::HTTP::Post.new(uri.request_uri)
32
+ when 'delete'
33
+ Net::HTTP::Delete.new(uri.request_uri)
34
+ end
35
+ req.body = JSON.dump(parameters)
36
+ req.content_type = "application/json"
37
+ result = Net::HTTP.start(uri.hostname, uri.port) do |http|
38
+ http.request(req)
39
+ end
40
+ #result = Net::HTTP.post_form(uri, converted_params)
41
+ if result.is_a?(Net::HTTPSuccess)
42
+ if result.body == 'false'
43
+ false
44
+ elsif result.body == 'true'
45
+ true
46
+ else
47
+ if method != 'delete'
48
+ JSON.parse(result.body)
49
+ else
50
+ result.body
51
+ end
52
+ end
53
+ else
54
+ raise AuthorrCustomerException.new result.body
55
+ end
56
+ end
57
+
58
+
59
+ # This method creates a new Order.
60
+ # Parameters:
61
+ # - assignments: List of assignments
62
+ # - min_rating: Minimum rating for author
63
+ # - name:
64
+ def create_order(assignments, min_rating = nil, name = nil)
65
+ if assignments.nil?
66
+ raise AuthorrCustomerException.new('assignments should not be empty')
67
+ end
68
+ parameters = {'order' => {'assignments' => assignments, 'min_rating' => min_rating, 'name' => name}}
69
+ exec_post(parameters, 'post', "#{@base_path}/api/v1/customers/orders.json?api_key=#{@api_key}")
70
+ end
71
+
72
+ # This method returns all your orders.
73
+ # Parameters:
74
+ # none
75
+ def get_orders()
76
+ exec_get("#{@base_path}/api/v1/customers/orders.json?api_key=#{@api_key}")
77
+ end
78
+
79
+ # Returns the details of a specific order. Use this to check the status of your orders.
80
+ # Parameters:
81
+ # - id: Order ID
82
+ def get_order_by_id(id)
83
+ if id.nil?
84
+ raise AuthorrCustomerException.new('id should not be empty')
85
+ end
86
+ exec_get("#{@base_path}/api/v1/customers/orders/#{id}.json?api_key=#{@api_key}")
87
+ end
88
+
89
+ # Retrieves information about a single assignment.
90
+ # Parameters:
91
+ # - id: Assignment ID
92
+ def get_assignment_by_id(id)
93
+ if id.nil?
94
+ raise AuthorrCustomerException.new('id should not be empty')
95
+ end
96
+ exec_get("#{@base_path}/api/v1/customers/assignments/#{id}.json?api_key=#{@api_key}")
97
+ end
98
+
99
+ # Use this method to resubmit a rejected assignment. You should provide instructions along with your request
100
+ # for the author.
101
+ # Parameters:
102
+ # - id: Assignment ID
103
+ # - instructions: Instructions for Author
104
+ # - topic: Topic to write about
105
+ # - required_words_for_title: Required Words for Title (space separated)
106
+ # - required_keywords: Required Keywords (comma separated)
107
+ def resubmit_assignment(id, instructions, topic = nil, required_words_for_title = nil, required_keywords = nil)
108
+ if id.nil?
109
+ raise AuthorrCustomerException.new('id should not be empty')
110
+ end
111
+
112
+ if instructions.nil?
113
+ raise AuthorrCustomerException.new('instructions should not be empty')
114
+ end
115
+ parameters = {'instructions' => instructions, 'topic' => topic, 'required_words_for_title' => required_words_for_title, 'required_keywords' => required_keywords}
116
+ exec_post(parameters, 'put', "#{@base_path}/api/v1/customers/assignments/#{id}/resubmit.json?api_key=#{@api_key}")
117
+ end
118
+
119
+ # Use this method to request an edit to a delivered assignment. You should provide instructions along with your request
120
+ # for the author.
121
+ # Parameters:
122
+ # - id: Assignment ID
123
+ # - instructions: Edit instructions for the author
124
+ def request_assignment_edit(id, instructions)
125
+ if id.nil?
126
+ raise AuthorrCustomerException.new('id should not be empty')
127
+ end
128
+
129
+ if instructions.nil?
130
+ raise AuthorrCustomerException.new('instructions should not be empty')
131
+ end
132
+ parameters = {'instructions' => instructions}
133
+ exec_post(parameters, 'put', "#{@base_path}/api/v1/customers/assignments/#{id}/request_edit.json?api_key=#{@api_key}")
134
+ end
135
+
136
+ # Use this method to accept an assignment.
137
+ # Parameters:
138
+ # - id: Assignment ID
139
+ def accept_assignment(id)
140
+ if id.nil?
141
+ raise AuthorrCustomerException.new('id should not be empty')
142
+ end
143
+ parameters = {}
144
+ exec_post(parameters, 'put', "#{@base_path}/api/v1/customers/assignments/#{id}/accept_assignment.json?api_key=#{@api_key}")
145
+ end
146
+
147
+ end
@@ -0,0 +1,5 @@
1
+ module Authorr
2
+ module Api
3
+ VERSION = "1.0.1"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: authorr-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Velluto
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-22 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Authorr API for Customers and Authors
14
+ email:
15
+ - authorr@authorr.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - Gemfile
22
+ - LICENSE
23
+ - README.md
24
+ - Rakefile
25
+ - authorr-api.gemspec
26
+ - lib/authorr-api.rb
27
+ - lib/authorr-api/customers.rb
28
+ - lib/authorr-api/version.rb
29
+ homepage: http://www.authorr.com
30
+ licenses: []
31
+ metadata: {}
32
+ post_install_message:
33
+ rdoc_options: []
34
+ require_paths:
35
+ - lib
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project:
48
+ rubygems_version: 2.2.2
49
+ signing_key:
50
+ specification_version: 4
51
+ summary: Authorr API
52
+ test_files: []
53
+ has_rdoc: