apillary 0.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 249d945ce85805c5c61c7de6b425f484b9170ca42a4f22d23600216e5b19d599
4
+ data.tar.gz: f2f6811a04ec2b9a2042f60cebd642346cea3ac159b9762d34e001ff4808ff7b
5
+ SHA512:
6
+ metadata.gz: 83a5719618cd01122875ad93cf5ed9fb61bdf65ec2d4d31ad994c54878f068882a3a86bbd98cbd6330aa624229f4cb197f49a9af507dee7ff4eaa52f7cb3834f
7
+ data.tar.gz: 7ef88fbb51e179e945273802a72c99a6cf6df8fe142020baa702c88eb41a1e955b986eabf634e86c37a173350d65fcb0b18869df50608c020b928fa92b7933cb
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+ gemspec
4
+
5
+ gem 'pry'
6
+ # gem "rails"
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ kele (0.0.1)
5
+ httparty (~> 0.13)
6
+ json (~> 1.8)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ coderay (1.1.2)
12
+ httparty (0.15.6)
13
+ multi_xml (>= 0.5.2)
14
+ json (1.8.6)
15
+ method_source (0.9.0)
16
+ multi_xml (0.6.0)
17
+ pry (0.11.3)
18
+ coderay (~> 1.1.0)
19
+ method_source (~> 0.9.0)
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ kele!
26
+ pry
27
+
28
+ BUNDLED WITH
29
+ 1.16.0
data/README.md ADDED
@@ -0,0 +1,7 @@
1
+ Kele is a simple API client built to pull student and staff data from [Bloc's](http://www.bloc.io) API. It was written as a Ruby Gem, and uses HTTParty and JSON parsing to consume information in a readable and useful way. Given other APIs and types of requests, it could easily be used to pull data from other sources. In fact, here's some examples:
2
+
3
+ **Kele consuming the Star Wars API**
4
+ ![alt-text](assets/swapi.jpeg "That's no moon...")
5
+
6
+ **Kele consuming the Meme Generator API**
7
+ ![alt-text](assets/meme_api.jpeg "Hi ho, Kermit the Frog Here!")
data/apillary.gemspec ADDED
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'apillary'
3
+ s.version = '0.0.1'
4
+ s.date = '2017-12-17'
5
+ s.summary = 'Apillary API Client'
6
+ s.description = 'A client for the Bloc API'
7
+ s.authors = ['Daniel Lakin']
8
+ s.email = 'DLakin01@gmail.com'
9
+ s.files = `git ls-files`.split($/)
10
+ s.require_paths = ['lib']
11
+ s.homepage = 'http://rubygems.org/gems/apillary'
12
+ s.license = 'MIT'
13
+ s.add_runtime_dependency 'httparty', '~> 0.13'
14
+ s.add_runtime_dependency 'json', '~> 1.8'
15
+ end
Binary file
data/assets/swapi.jpeg ADDED
Binary file
data/lib/apillary.rb ADDED
@@ -0,0 +1,57 @@
1
+ require 'httparty'
2
+ require 'json'
3
+ require 'apillary/roadmap'
4
+
5
+ class Apillary
6
+ include HTTParty
7
+ include JSON
8
+ include Roadmap
9
+
10
+ def initialize(email, password)
11
+ response = self.class.post("https://www.bloc.io/api/v1/sessions", body: {"email": email, "password": password})
12
+ @auth_token = response["auth_token"]
13
+ end
14
+
15
+ def get_me
16
+ response = self.class.get("https://www.bloc.io/api/v1/users/me", headers: { "authorization" => @auth_token })
17
+ body = JSON.parse(response.body)
18
+ end
19
+
20
+ def get_mentor_availability(id)
21
+ response = self.class.get("https://www.bloc.io/api/v1/mentors/#{id}/student_availability", headers: { "authorization" => @auth_token })
22
+ body = JSON.parse(response.body)
23
+ end
24
+
25
+ def get_messages(page = nil)
26
+ if page
27
+ response = self.class.get("https://www.bloc.io/api/v1/message_threads", body: { page: page }, headers: { "authorization" => @auth_token })
28
+ body = JSON.parse(response.body)
29
+ else
30
+ response = self.class.get("https://www.bloc.io/api/v1/message_threads", headers: { "authorization" => @auth_token })
31
+ body = JSON.parse(response.body)
32
+ end
33
+ end
34
+
35
+ def create_message(sender, recipient_id, message, subject)
36
+ response = self.class.post("https://www.bloc.io/api/v1/messages", headers: { "authorization" => @auth_token }, body: { sender: sender, recipient_id: recipient_id, stripped_text: message, subject: subject})
37
+ body = JSON.parse(response.body)
38
+ end
39
+
40
+ def create_submission(id, checkpoint_id, branch = nil, commit_link = nil, comment = nil)
41
+ response = self.class.post("https://www.bloc.io/api/v1/checkpoint_submissions", body: { enrollment_id: id, checkpoint_id: checkpoint_id, assignment_branch: branch, assignment_commit_link: commit_link, comment: comment }, headers: { "authorization" => @auth_token })
42
+ end
43
+
44
+ def update_checkpoint(id, enrollment_id, checkpoint_id, branch = nil, commit_link = nil, comment = nil)
45
+ response = self.class.put("https://www.bloc.io/api/v1/checkpoint_submissions/:#{id}", body: { enrollment_id: enrollment_id, checkpoint_id: checkpoint_id, assignment_branch: branch, assignment_commit_link: commit_link, comment: comment }, headers: { "authorization" => @auth_token })
46
+ end
47
+
48
+ def star_wars(category, id)
49
+ response = self.class.get("https://swapi.co/api/#{category}/#{id}")
50
+ body = JSON.parse(response.body)
51
+ end
52
+
53
+ def get_meme(pageIndex, pageSize, key)
54
+ response = self.class.get("https://version1.api.memegenerator.net//Generators_Select_ByNew?pageIndex=#{pageIndex}&pageSize=#{pageSize}&apiKey=#{key}")
55
+ body = JSON.parse(response.body)
56
+ end
57
+ end
@@ -0,0 +1,11 @@
1
+ module Roadmap
2
+ def get_roadmap(id)
3
+ response = self.class.get("https://www.bloc.io/api/v1/roadmaps/#{id}", headers: { "authorization" => @auth_token })
4
+ @roadmap = JSON.parse(response.body)
5
+ end
6
+
7
+ def get_checkpoints(id)
8
+ response = self.class.get("https://www.bloc.io/api/v1/checkpoints/#{id}", headers: { "authorization" => @auth_token })
9
+ @checkpoints = JSON.parse(response.body)
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apillary
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Lakin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-12-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.13'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.13'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ description: A client for the Bloc API
42
+ email: DLakin01@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - Gemfile
48
+ - Gemfile.lock
49
+ - README.md
50
+ - apillary.gemspec
51
+ - assets/meme_api.jpeg
52
+ - assets/swapi.jpeg
53
+ - lib/apillary.rb
54
+ - lib/apillary/roadmap.rb
55
+ homepage: http://rubygems.org/gems/apillary
56
+ licenses:
57
+ - MIT
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.7.3
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: Apillary API Client
79
+ test_files: []