epitech_api 0.1.1 → 0.1.2
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 +4 -4
- data/.gitignore +0 -0
- data/.idea/.rakeTasks +0 -0
- data/.idea/epitech-api-gem.iml +0 -0
- data/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- data/.idea/modules.xml +0 -0
- data/.idea/workspace.xml +0 -0
- data/.rspec +0 -0
- data/.travis.yml +0 -0
- data/CODE_OF_CONDUCT.md +0 -0
- data/Gemfile +0 -0
- data/Gemfile.lock +0 -0
- data/LICENSE +0 -0
- data/LICENSE.txt +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/epitech_api.gemspec +1 -1
- data/lib/epitech_api/Exceptions/invalid_credentials.rb +3 -1
- data/lib/epitech_api/Exceptions/invalid_rights.rb +3 -1
- data/lib/epitech_api/Provider/intra_provider.rb +10 -9
- data/lib/epitech_api/Provider/office_provider.rb +11 -9
- data/lib/epitech_api/gatherer.rb +25 -22
- data/lib/epitech_api/user.rb +18 -16
- data/lib/epitech_api/version.rb +1 -1
- data/lib/epitech_api.rb +1 -1
- metadata +4 -5
- data/test.rb +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f9aa47121fcb332a5c89bf53789c206c1da88724
|
|
4
|
+
data.tar.gz: 9c78ab50c4abec739c4acfe6c3d996df60bda660
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2020def9566af1514fbe5693e63fec59472c419f2e3efb41c591f9f1e75594ca7b1f725ddeb33fcee6f669620a48d36fa8cee0b5ce140678a1be1d4f0cbdfe6b
|
|
7
|
+
data.tar.gz: a9c2905c7dc69d69b5e047d0decece2c9902ebda88e47e2c19fa55cda3f54b0a2d89fee444b46658028ffde757776ffffb220a1e6334db81cfbe6e358fe2c39e
|
data/.gitignore
CHANGED
|
File without changes
|
data/.idea/.rakeTasks
CHANGED
|
File without changes
|
data/.idea/epitech-api-gem.iml
CHANGED
|
File without changes
|
|
File without changes
|
data/.idea/modules.xml
CHANGED
|
File without changes
|
data/.idea/workspace.xml
CHANGED
|
File without changes
|
data/.rspec
CHANGED
|
File without changes
|
data/.travis.yml
CHANGED
|
File without changes
|
data/CODE_OF_CONDUCT.md
CHANGED
|
File without changes
|
data/Gemfile
CHANGED
|
File without changes
|
data/Gemfile.lock
CHANGED
|
File without changes
|
data/LICENSE
CHANGED
|
File without changes
|
data/LICENSE.txt
CHANGED
|
File without changes
|
data/README.md
CHANGED
|
File without changes
|
data/Rakefile
CHANGED
|
File without changes
|
data/epitech_api.gemspec
CHANGED
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
31
31
|
spec.require_paths = ["lib"]
|
|
32
32
|
|
|
33
|
-
spec.add_runtime_dependency "json", "~> 2.1
|
|
33
|
+
spec.add_runtime_dependency "json", "~> 2.1"
|
|
34
34
|
spec.add_development_dependency "bundler", "~> 1.16"
|
|
35
35
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
36
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
@@ -3,15 +3,16 @@ require 'cgi/cookie'
|
|
|
3
3
|
require_relative '../Exceptions/invalid_credentials'
|
|
4
4
|
require_relative '../user'
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
module EpitechApi
|
|
7
|
+
class IntraProvider
|
|
8
|
+
def self.auto_login(code)
|
|
9
|
+
uri = URI("https://intra.epitech.eu/#{code}")
|
|
10
|
+
response = Net::HTTP.get_response(uri)
|
|
11
|
+
raise InvalidCredentials unless response.code.to_i == 302
|
|
7
12
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
cookie = CGI::Cookie::parse(response['Set-Cookie'])
|
|
14
|
-
token = cookie['user']
|
|
15
|
-
User.new token
|
|
13
|
+
cookie = CGI::Cookie::parse(response['Set-Cookie'])
|
|
14
|
+
token = cookie['user']
|
|
15
|
+
User.new token
|
|
16
|
+
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
@@ -3,15 +3,17 @@ require 'cgi/cookie'
|
|
|
3
3
|
require_relative '../Exceptions/invalid_credentials'
|
|
4
4
|
require_relative '../user'
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
module EpitechApi
|
|
7
|
+
class OfficeProvider
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
def self.login(code)
|
|
10
|
+
uri = URI("https://intra.epitech.eu/auth/office365?code=#{code}&state=%2f")
|
|
11
|
+
response = Net::HTTP.get_response(uri)
|
|
12
|
+
raise InvalidCredentials unless response.code.to_i == 302
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
cookie = CGI::Cookie::parse(response['Set-Cookie'])
|
|
15
|
+
token = cookie['user']
|
|
16
|
+
User.new token
|
|
17
|
+
end
|
|
16
18
|
end
|
|
17
|
-
end
|
|
19
|
+
end
|
data/lib/epitech_api/gatherer.rb
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
module EpitechApi
|
|
2
|
+
|
|
3
|
+
class Gatherer
|
|
4
|
+
|
|
5
|
+
def initialize(token)
|
|
6
|
+
@token = token
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def promos(location, year)
|
|
10
|
+
uri = URI("https://intra.epitech.eu/user/filter/promo?format=json&location=#{location}&year=#{year}&active=true")
|
|
11
|
+
puts uri
|
|
12
|
+
|
|
13
|
+
req = Net::HTTP::Get.new uri
|
|
14
|
+
req['Cookie'] = "#{@token}"
|
|
15
|
+
|
|
16
|
+
http = Net::HTTP.new(uri.hostname, uri.port)
|
|
17
|
+
http.use_ssl = true
|
|
18
|
+
|
|
19
|
+
response = http.request req
|
|
20
|
+
|
|
21
|
+
puts response
|
|
22
|
+
raise InvalidRights unless response.code.to_i == 200
|
|
23
|
+
JSON.parse response.body
|
|
24
|
+
end
|
|
25
|
+
end
|
|
23
26
|
end
|
data/lib/epitech_api/user.rb
CHANGED
|
@@ -2,28 +2,30 @@ require 'json'
|
|
|
2
2
|
require_relative 'Exceptions/invalid_rights'
|
|
3
3
|
require_relative 'gatherer'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
module EpitechApi
|
|
6
|
+
class User
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
def initialize(token)
|
|
9
|
+
@token = token
|
|
10
|
+
end
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
def gatherer
|
|
13
|
+
Gatherer.new @token
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
def info
|
|
17
|
+
uri = URI('https://intra.epitech.eu/user/?format=json')
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
req = Net::HTTP::Get.new uri
|
|
20
|
+
req['Cookie'] = "#{@token}"
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
http = Net::HTTP.new(uri.hostname, uri.port)
|
|
23
|
+
http.use_ssl = true
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
response = http.request req
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
raise InvalidRights unless response.code.to_i == 200
|
|
28
|
+
JSON.parse response.body
|
|
29
|
+
end
|
|
28
30
|
end
|
|
29
31
|
end
|
data/lib/epitech_api/version.rb
CHANGED
data/lib/epitech_api.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: epitech_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Antoine FORET
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-12-
|
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.1
|
|
19
|
+
version: '2.1'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 2.1
|
|
26
|
+
version: '2.1'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,7 +99,6 @@ files:
|
|
|
99
99
|
- lib/epitech_api/gatherer.rb
|
|
100
100
|
- lib/epitech_api/user.rb
|
|
101
101
|
- lib/epitech_api/version.rb
|
|
102
|
-
- test.rb
|
|
103
102
|
homepage: https://github.com/eliastre100/epitech-api-gem
|
|
104
103
|
licenses:
|
|
105
104
|
- MIT
|
data/test.rb
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
require 'epitech_api/Provider/intra_provider'
|
|
2
|
-
require 'epitech_api/Provider/office_provider'
|
|
3
|
-
|
|
4
|
-
user = IntraProvider.auto_login 'auth-cb01ff8a7f60c846dbc8f1c4a7b3616f38b302ee'
|
|
5
|
-
infos = user.info
|
|
6
|
-
|
|
7
|
-
puts infos.inspect
|
|
8
|
-
promos = user.gatherer.promos(infos['location'], 2017)
|
|
9
|
-
puts promos
|