kosapi_client 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +22 -0
- data/README.md +89 -0
- data/kosapi_client.gemspec +38 -0
- data/lib/kosapi_client/api_client.rb +1 -0
- data/lib/kosapi_client/entity/division.rb +13 -0
- data/lib/kosapi_client/entity/exam.rb +3 -1
- data/lib/kosapi_client/entity/id.rb +0 -1
- data/lib/kosapi_client/entity/parallel.rb +0 -1
- data/lib/kosapi_client/entity.rb +1 -0
- data/lib/kosapi_client/oauth2_http_adapter.rb +9 -4
- data/lib/kosapi_client/request_builder.rb +0 -1
- data/lib/kosapi_client/resource/course_events_builder.rb +1 -1
- data/lib/kosapi_client/resource/courses_builder.rb +7 -0
- data/lib/kosapi_client/resource/exams_builder.rb +1 -1
- data/lib/kosapi_client/resource/parallels_builder.rb +0 -1
- data/lib/kosapi_client/version.rb +1 -1
- metadata +25 -99
- data/bin/console +0 -15
- data/bin/setup +0 -23
- data/spec/integration/course_events_spec.rb +0 -13
- data/spec/integration/courses_spec.rb +0 -28
- data/spec/integration/exams_spec.rb +0 -20
- data/spec/integration/parallels_spec.rb +0 -68
- data/spec/kosapi_client/api_client_spec.rb +0 -22
- data/spec/kosapi_client/configuration_spec.rb +0 -30
- data/spec/kosapi_client/entity/base_entity_spec.rb +0 -20
- data/spec/kosapi_client/entity/base_person_spec.rb +0 -19
- data/spec/kosapi_client/entity/boolean_spec.rb +0 -23
- data/spec/kosapi_client/entity/course_event_spec.rb +0 -30
- data/spec/kosapi_client/entity/data_mappings_spec.rb +0 -154
- data/spec/kosapi_client/entity/enum_spec.rb +0 -20
- data/spec/kosapi_client/entity/id_spec.rb +0 -13
- data/spec/kosapi_client/entity/link_spec.rb +0 -89
- data/spec/kosapi_client/entity/ml_string_spec.rb +0 -52
- data/spec/kosapi_client/entity/parallel_spec.rb +0 -18
- data/spec/kosapi_client/entity/result_page_spec.rb +0 -42
- data/spec/kosapi_client/entity/teacher_timetable_slot_spec.rb +0 -19
- data/spec/kosapi_client/entity/timetable_slot_spec.rb +0 -22
- data/spec/kosapi_client/hash_utils_spec.rb +0 -20
- data/spec/kosapi_client/http_client_spec.rb +0 -30
- data/spec/kosapi_client/kosapi_client_spec.rb +0 -57
- data/spec/kosapi_client/kosapi_response_spec.rb +0 -96
- data/spec/kosapi_client/oauth2_http_adapter_spec.rb +0 -25
- data/spec/kosapi_client/request_builder_delegator_spec.rb +0 -72
- data/spec/kosapi_client/request_builder_spec.rb +0 -80
- data/spec/kosapi_client/resource/courses_builder_spec.rb +0 -20
- data/spec/kosapi_client/resource/parallels_builder_spec.rb +0 -49
- data/spec/kosapi_client/resource_mapper_spec.rb +0 -33
- data/spec/kosapi_client/response_converter_spec.rb +0 -58
- data/spec/kosapi_client/response_links_spec.rb +0 -52
- data/spec/kosapi_client/response_preprocessor_spec.rb +0 -51
- data/spec/kosapi_client/url_builder_spec.rb +0 -44
- data/spec/spec_helper.rb +0 -40
- data/spec/support/client_helpers.rb +0 -11
- data/spec/support/helpers.rb +0 -7
- data/spec/support/shared_examples_for_fluent_api.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f487f91043e5b0941cceb0848db870e7c21d4f22
|
4
|
+
data.tar.gz: 2ebfc29ba496aed0cd7d103332bbfba30ea266f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9783ca343bf7b53992dc66c6fb7e9a355cd849f60f03142181d14c7cc6c5df2d75895889e162b2c2ab717824b5bb2f8808bc32d50d763fa60b302d17a58be59f
|
7
|
+
data.tar.gz: d313ba2e37f42be9ec83cb8fdc0bd59b5f32c08072383911662dc333bef366ab91a39dc62f3b6b7f4f9e9cd2a9fafa9316a2a427e986831ff8f896d3015ddc7f
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2013-2017 Czech Technical University in Prague.
|
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,89 @@
|
|
1
|
+
# KOSapi Client
|
2
|
+
|
3
|
+
[![Gem Version](https://img.shields.io/gem/v/kosapi_client.svg)](rubygems)
|
4
|
+
[![Build Status](http://img.shields.io/travis/cvut/kosapi_client.rb.svg)][travis]
|
5
|
+
[![Dependency Status](http://img.shields.io/gemnasium/cvut/kosapi_client.rb.svg)][gemnasium]
|
6
|
+
[![Code Climate](http://img.shields.io/codeclimate/github/cvut/kosapi_client.rb.svg)][codeclimate]
|
7
|
+
[![Coverage Status](https://img.shields.io/coveralls/cvut/kosapi_client.rb.svg)][coveralls]
|
8
|
+
[![Inline docs](http://inch-ci.org/github/cvut/kosapi_client.rb.svg)](http://inch-ci.org/github/cvut/kosapi_client.rb)
|
9
|
+
|
10
|
+
[rubygems]: https://rubygems.org/gems/kosapi_client
|
11
|
+
[travis]: http://travis-ci.org/cvut/kosapi_client.rb
|
12
|
+
[gemnasium]: https://gemnasium.com/cvut/kosapi_client.rb
|
13
|
+
[codeclimate]: https://codeclimate.com/github/cvut/kosapi_client.rb
|
14
|
+
[coveralls]: https://coveralls.io/r/cvut/kosapi_client.rb
|
15
|
+
|
16
|
+
A simple Ruby client library for [KOSapi RESTful service](https://kosapi.fit.cvut.cz).
|
17
|
+
|
18
|
+
## Installation
|
19
|
+
|
20
|
+
Add this line to your application's Gemfile:
|
21
|
+
|
22
|
+
gem 'kosapi_client', github: 'cvut/kosapi_client.rb'
|
23
|
+
|
24
|
+
And then execute:
|
25
|
+
|
26
|
+
$ bundle
|
27
|
+
|
28
|
+
## Basic usage
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
# Creates a new instance of client with OAuth2 credentials
|
32
|
+
client = KOSapiClient.new({ client_id: OAUTH_CLIENT_ID, client_secret: OAUTH_SECRET })
|
33
|
+
|
34
|
+
# Retrieves first page of all course events
|
35
|
+
course_events_page = client.course_events
|
36
|
+
course_events_page.each { |event| do_stuff_with_event(event) }
|
37
|
+
|
38
|
+
# Fetches page of parallels according to API parameters
|
39
|
+
parallels_page = client.parallels.offset(0).limit(50).query('course.department' => '18*')
|
40
|
+
|
41
|
+
# Finds all parallels related to parallel with id = 42
|
42
|
+
client.parallels.find(42).related
|
43
|
+
```
|
44
|
+
|
45
|
+
## Configuration
|
46
|
+
|
47
|
+
KOSapiClient can be created and configured in two ways.
|
48
|
+
The simple way is to call `KOSapiClient.new`, which returns an ApiClient instance.
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
client = KOSapiClient.new({ client_id: OAUTH_CLIENT_ID, client_secret: OAUTH_SECRET })
|
52
|
+
client.parallels.find(42)
|
53
|
+
```
|
54
|
+
|
55
|
+
The other way is to configure client using `KOSapiClient.configure` and setting options inside a block.
|
56
|
+
In addition to returning the client instance from `configure`, the client is also stored in `KOSapiClient` singleton property and its methods can be accessed by calling them on `KOSapiClient` directly.
|
57
|
+
This approach is more suitable for configuring client inside an initializer.
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
KOSapiClient.configure do |c|
|
61
|
+
c.client_id = ENV['KOSAPI_OAUTH_CLIENT_ID']
|
62
|
+
c.client_secret = ENV['KOSAPI_OAUTH_CLIENT_SECRET']
|
63
|
+
end
|
64
|
+
|
65
|
+
KOSapiClient.parallels.find(42)
|
66
|
+
```
|
67
|
+
|
68
|
+
## Development
|
69
|
+
|
70
|
+
Run `bin/setup` script to setup dependencies and create `.env` file. You will need to obtain access to KOSapi.
|
71
|
+
|
72
|
+
### OAuth Credentials
|
73
|
+
|
74
|
+
You will need a KOSapi OAuth credentials from the [Apps Manager](https://auth.fit.cvut.cz/manager/) to run integration specs.
|
75
|
+
|
76
|
+
OAuth credentials need to be exposed as environment variables `KOSAPI_OAUTH_CLIENT_ID` and `KOSAPI_OAUTH_CLIENT_SECRET`. If you put them into `.env` file, the test suite will load them for you automatically:
|
77
|
+
|
78
|
+
```
|
79
|
+
KOSAPI_OAUTH_CLIENT_ID=xxx-xxxx-xxxx
|
80
|
+
KOSAPI_OAUTH_CLIENT_SECRET=yyyyyyyyy
|
81
|
+
```
|
82
|
+
|
83
|
+
### Contributing
|
84
|
+
|
85
|
+
Bug reports and pull requests are welcome on GitHub at [cvut/kosapi_client.rb](https://github.com/cvut/kosapi_client.rb). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
86
|
+
|
87
|
+
## License
|
88
|
+
|
89
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path('../lib/kosapi_client/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = 'kosapi_client'
|
6
|
+
spec.version = KOSapiClient::VERSION
|
7
|
+
spec.authors = ['Tibor Szolár']
|
8
|
+
spec.email = 'szolatib@fit.cvut.cz'
|
9
|
+
spec.description = 'REST client for KOSapi service'
|
10
|
+
spec.summary = 'Simple Ruby client library for accessing KOSapi service resources'
|
11
|
+
spec.homepage = 'https://github.com/cvut/kosapi_client.rb'
|
12
|
+
spec.license = 'MIT'
|
13
|
+
|
14
|
+
spec.files = Dir['lib/**/*', '*.gemspec', 'LICENSE', 'README*']
|
15
|
+
spec.require_paths = ['lib']
|
16
|
+
|
17
|
+
spec.required_ruby_version = '>= 2.0.0'
|
18
|
+
|
19
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
20
|
+
spec.add_development_dependency 'rake'
|
21
|
+
spec.add_development_dependency 'rspec'
|
22
|
+
spec.add_development_dependency 'rspec-given'
|
23
|
+
spec.add_development_dependency 'dotenv'
|
24
|
+
spec.add_development_dependency 'vcr', '~> 3.0'
|
25
|
+
spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.0'
|
26
|
+
spec.add_development_dependency 'guard-rspec'
|
27
|
+
spec.add_development_dependency 'coveralls'
|
28
|
+
spec.add_development_dependency 'fuubar', '~> 2.2.0'
|
29
|
+
spec.add_development_dependency 'simplecov'
|
30
|
+
|
31
|
+
spec.add_runtime_dependency 'oauth2', '~> 1.4'
|
32
|
+
spec.add_runtime_dependency 'faraday', '~> 0.9'
|
33
|
+
spec.add_runtime_dependency 'corefines', '~> 1.6'
|
34
|
+
spec.add_runtime_dependency 'escape_utils', '~> 1.0' unless RUBY_PLATFORM == 'java' # used for uri_template
|
35
|
+
spec.add_runtime_dependency 'uri_template', '~> 0.7.0'
|
36
|
+
# Required for correct XML namespace handling (MultiXML, oauth2).
|
37
|
+
spec.add_runtime_dependency 'ox', '~> 2.1'
|
38
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
1
3
|
module KOSapiClient
|
2
4
|
module Entity
|
3
5
|
class Exam < BaseEntity
|
@@ -18,7 +20,7 @@ module KOSapiClient
|
|
18
20
|
map_data :start_date, Time
|
19
21
|
map_data :substitutes, Enum
|
20
22
|
map_data :superior, Link
|
21
|
-
map_data :term_type, Enum
|
23
|
+
map_data :term_type, Enum
|
22
24
|
|
23
25
|
end
|
24
26
|
end
|
data/lib/kosapi_client/entity.rb
CHANGED
@@ -9,6 +9,7 @@ require 'kosapi_client/entity/base_entity'
|
|
9
9
|
require 'kosapi_client/entity/result_page'
|
10
10
|
require 'kosapi_client/entity/course_event'
|
11
11
|
require 'kosapi_client/entity/course'
|
12
|
+
require 'kosapi_client/entity/division'
|
12
13
|
require 'kosapi_client/entity/teacher_timetable_slot'
|
13
14
|
require 'kosapi_client/entity/timetable_slot'
|
14
15
|
require 'kosapi_client/entity/parallel'
|
@@ -3,8 +3,8 @@ require 'oauth2'
|
|
3
3
|
module KOSapiClient
|
4
4
|
class OAuth2HttpAdapter
|
5
5
|
|
6
|
-
DEFAULT_AUTH_URL = 'https://auth.fit.cvut.cz/oauth/
|
7
|
-
DEFAULT_TOKEN_URL = 'https://auth.fit.cvut.cz/oauth/
|
6
|
+
DEFAULT_AUTH_URL = 'https://auth.fit.cvut.cz/oauth/authorize'
|
7
|
+
DEFAULT_TOKEN_URL = 'https://auth.fit.cvut.cz/oauth/token'
|
8
8
|
|
9
9
|
attr_reader :base_url
|
10
10
|
|
@@ -14,7 +14,13 @@ module KOSapiClient
|
|
14
14
|
auth_url = opts[:auth_url] || DEFAULT_AUTH_URL
|
15
15
|
token_url = opts[:token_url] || DEFAULT_TOKEN_URL
|
16
16
|
MultiXml.parser = :ox # make sure to use Ox because of different namespace handling in other MultiXML parsers
|
17
|
-
@client = OAuth2::Client.new(
|
17
|
+
@client = OAuth2::Client.new(
|
18
|
+
credentials[:client_id],
|
19
|
+
credentials[:client_secret],
|
20
|
+
auth_scheme: :basic_auth,
|
21
|
+
site: base_url,
|
22
|
+
authorize_url: auth_url,
|
23
|
+
token_url: token_url)
|
18
24
|
end
|
19
25
|
|
20
26
|
def send_request(verb, url, options = {})
|
@@ -33,4 +39,3 @@ module KOSapiClient
|
|
33
39
|
end
|
34
40
|
end
|
35
41
|
end
|
36
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kosapi_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tibor Szolár
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -168,16 +168,16 @@ dependencies:
|
|
168
168
|
name: oauth2
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - "
|
171
|
+
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
173
|
+
version: '1.4'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - "
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
180
|
+
version: '1.4'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: faraday
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,54 +210,53 @@ dependencies:
|
|
210
210
|
name: escape_utils
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- - "
|
213
|
+
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
215
|
+
version: '1.0'
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - "
|
220
|
+
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
222
|
+
version: '1.0'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: uri_template
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - "
|
227
|
+
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
229
|
+
version: 0.7.0
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
236
|
+
version: 0.7.0
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: ox
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
|
-
- - "
|
241
|
+
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '
|
243
|
+
version: '2.1'
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
|
-
- - "
|
248
|
+
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '
|
250
|
+
version: '2.1'
|
251
251
|
description: REST client for KOSapi service
|
252
252
|
email: szolatib@fit.cvut.cz
|
253
|
-
executables:
|
254
|
-
- console
|
255
|
-
- setup
|
253
|
+
executables: []
|
256
254
|
extensions: []
|
257
255
|
extra_rdoc_files: []
|
258
256
|
files:
|
259
|
-
-
|
260
|
-
-
|
257
|
+
- LICENSE
|
258
|
+
- README.md
|
259
|
+
- kosapi_client.gemspec
|
261
260
|
- lib/kosapi_client.rb
|
262
261
|
- lib/kosapi_client/api_client.rb
|
263
262
|
- lib/kosapi_client/configuration.rb
|
@@ -269,6 +268,7 @@ files:
|
|
269
268
|
- lib/kosapi_client/entity/course.rb
|
270
269
|
- lib/kosapi_client/entity/course_event.rb
|
271
270
|
- lib/kosapi_client/entity/data_mappings.rb
|
271
|
+
- lib/kosapi_client/entity/division.rb
|
272
272
|
- lib/kosapi_client/entity/enum.rb
|
273
273
|
- lib/kosapi_client/entity/exam.rb
|
274
274
|
- lib/kosapi_client/entity/id.rb
|
@@ -300,43 +300,6 @@ files:
|
|
300
300
|
- lib/kosapi_client/response_preprocessor.rb
|
301
301
|
- lib/kosapi_client/url_builder.rb
|
302
302
|
- lib/kosapi_client/version.rb
|
303
|
-
- spec/integration/course_events_spec.rb
|
304
|
-
- spec/integration/courses_spec.rb
|
305
|
-
- spec/integration/exams_spec.rb
|
306
|
-
- spec/integration/parallels_spec.rb
|
307
|
-
- spec/kosapi_client/api_client_spec.rb
|
308
|
-
- spec/kosapi_client/configuration_spec.rb
|
309
|
-
- spec/kosapi_client/entity/base_entity_spec.rb
|
310
|
-
- spec/kosapi_client/entity/base_person_spec.rb
|
311
|
-
- spec/kosapi_client/entity/boolean_spec.rb
|
312
|
-
- spec/kosapi_client/entity/course_event_spec.rb
|
313
|
-
- spec/kosapi_client/entity/data_mappings_spec.rb
|
314
|
-
- spec/kosapi_client/entity/enum_spec.rb
|
315
|
-
- spec/kosapi_client/entity/id_spec.rb
|
316
|
-
- spec/kosapi_client/entity/link_spec.rb
|
317
|
-
- spec/kosapi_client/entity/ml_string_spec.rb
|
318
|
-
- spec/kosapi_client/entity/parallel_spec.rb
|
319
|
-
- spec/kosapi_client/entity/result_page_spec.rb
|
320
|
-
- spec/kosapi_client/entity/teacher_timetable_slot_spec.rb
|
321
|
-
- spec/kosapi_client/entity/timetable_slot_spec.rb
|
322
|
-
- spec/kosapi_client/hash_utils_spec.rb
|
323
|
-
- spec/kosapi_client/http_client_spec.rb
|
324
|
-
- spec/kosapi_client/kosapi_client_spec.rb
|
325
|
-
- spec/kosapi_client/kosapi_response_spec.rb
|
326
|
-
- spec/kosapi_client/oauth2_http_adapter_spec.rb
|
327
|
-
- spec/kosapi_client/request_builder_delegator_spec.rb
|
328
|
-
- spec/kosapi_client/request_builder_spec.rb
|
329
|
-
- spec/kosapi_client/resource/courses_builder_spec.rb
|
330
|
-
- spec/kosapi_client/resource/parallels_builder_spec.rb
|
331
|
-
- spec/kosapi_client/resource_mapper_spec.rb
|
332
|
-
- spec/kosapi_client/response_converter_spec.rb
|
333
|
-
- spec/kosapi_client/response_links_spec.rb
|
334
|
-
- spec/kosapi_client/response_preprocessor_spec.rb
|
335
|
-
- spec/kosapi_client/url_builder_spec.rb
|
336
|
-
- spec/spec_helper.rb
|
337
|
-
- spec/support/client_helpers.rb
|
338
|
-
- spec/support/helpers.rb
|
339
|
-
- spec/support/shared_examples_for_fluent_api.rb
|
340
303
|
homepage: https://github.com/cvut/kosapi_client.rb
|
341
304
|
licenses:
|
342
305
|
- MIT
|
@@ -357,45 +320,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
357
320
|
version: '0'
|
358
321
|
requirements: []
|
359
322
|
rubyforge_project:
|
360
|
-
rubygems_version: 2.
|
323
|
+
rubygems_version: 2.6.11
|
361
324
|
signing_key:
|
362
325
|
specification_version: 4
|
363
326
|
summary: Simple Ruby client library for accessing KOSapi service resources
|
364
|
-
test_files:
|
365
|
-
- spec/integration/course_events_spec.rb
|
366
|
-
- spec/integration/courses_spec.rb
|
367
|
-
- spec/integration/exams_spec.rb
|
368
|
-
- spec/integration/parallels_spec.rb
|
369
|
-
- spec/kosapi_client/api_client_spec.rb
|
370
|
-
- spec/kosapi_client/configuration_spec.rb
|
371
|
-
- spec/kosapi_client/entity/base_entity_spec.rb
|
372
|
-
- spec/kosapi_client/entity/base_person_spec.rb
|
373
|
-
- spec/kosapi_client/entity/boolean_spec.rb
|
374
|
-
- spec/kosapi_client/entity/course_event_spec.rb
|
375
|
-
- spec/kosapi_client/entity/data_mappings_spec.rb
|
376
|
-
- spec/kosapi_client/entity/enum_spec.rb
|
377
|
-
- spec/kosapi_client/entity/id_spec.rb
|
378
|
-
- spec/kosapi_client/entity/link_spec.rb
|
379
|
-
- spec/kosapi_client/entity/ml_string_spec.rb
|
380
|
-
- spec/kosapi_client/entity/parallel_spec.rb
|
381
|
-
- spec/kosapi_client/entity/result_page_spec.rb
|
382
|
-
- spec/kosapi_client/entity/teacher_timetable_slot_spec.rb
|
383
|
-
- spec/kosapi_client/entity/timetable_slot_spec.rb
|
384
|
-
- spec/kosapi_client/hash_utils_spec.rb
|
385
|
-
- spec/kosapi_client/http_client_spec.rb
|
386
|
-
- spec/kosapi_client/kosapi_client_spec.rb
|
387
|
-
- spec/kosapi_client/kosapi_response_spec.rb
|
388
|
-
- spec/kosapi_client/oauth2_http_adapter_spec.rb
|
389
|
-
- spec/kosapi_client/request_builder_delegator_spec.rb
|
390
|
-
- spec/kosapi_client/request_builder_spec.rb
|
391
|
-
- spec/kosapi_client/resource/courses_builder_spec.rb
|
392
|
-
- spec/kosapi_client/resource/parallels_builder_spec.rb
|
393
|
-
- spec/kosapi_client/resource_mapper_spec.rb
|
394
|
-
- spec/kosapi_client/response_converter_spec.rb
|
395
|
-
- spec/kosapi_client/response_links_spec.rb
|
396
|
-
- spec/kosapi_client/response_preprocessor_spec.rb
|
397
|
-
- spec/kosapi_client/url_builder_spec.rb
|
398
|
-
- spec/spec_helper.rb
|
399
|
-
- spec/support/client_helpers.rb
|
400
|
-
- spec/support/helpers.rb
|
401
|
-
- spec/support/shared_examples_for_fluent_api.rb
|
327
|
+
test_files: []
|
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "dotenv"
|
5
|
-
require "kosapi_client"
|
6
|
-
|
7
|
-
Dotenv.load
|
8
|
-
|
9
|
-
KOSapiClient.configure do |c|
|
10
|
-
c.client_id = ENV['KOSAPI_OAUTH_CLIENT_ID']
|
11
|
-
c.client_secret = ENV['KOSAPI_OAUTH_CLIENT_SECRET']
|
12
|
-
end
|
13
|
-
|
14
|
-
require "irb"
|
15
|
-
IRB.start
|
data/bin/setup
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
set -euo pipefail
|
3
|
-
IFS=$'\n\t'
|
4
|
-
|
5
|
-
echo "You will need OAuth credentials to access KOSapi and run integration tests."
|
6
|
-
echo "Register new project at https://auth.fit.cvut.cz/manager/ with readonly access to KOSapi
|
7
|
-
and enter client ID and secret for your default service account."
|
8
|
-
|
9
|
-
echo -n "Client ID (KOSAPI_OAUTH_CLIENT_ID): "
|
10
|
-
read client_id
|
11
|
-
echo -n "Client secret (KOSAPI_OAUTH_CLIENT_SECRET): "
|
12
|
-
read client_secret
|
13
|
-
|
14
|
-
script_path=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)
|
15
|
-
env_file=$(realpath "$script_path/../.env")
|
16
|
-
echo "Writing credentials to $env_file"
|
17
|
-
cat << EOF > "$env_file"
|
18
|
-
KOSAPI_OAUTH_CLIENT_ID=$client_id
|
19
|
-
KOSAPI_OAUTH_CLIENT_SECRET=$client_secret
|
20
|
-
EOF
|
21
|
-
|
22
|
-
echo "Running bundle install"
|
23
|
-
bundle install
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Course events resource', :vcr, :integration do
|
4
|
-
subject(:client) { create_kosapi_client }
|
5
|
-
|
6
|
-
it 'returns course events' do
|
7
|
-
expect(client.course_events.offset(0).limit(10).count).to be 10
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'returns course event attendees' do
|
11
|
-
expect(client.course_events.find(220200484405).attendees.count).to be > 0
|
12
|
-
end
|
13
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Courses resource', :vcr, :integration do
|
4
|
-
let(:credentials) { { client_id: ENV['KOSAPI_OAUTH_CLIENT_ID'], client_secret: ENV['KOSAPI_OAUTH_CLIENT_SECRET'] } }
|
5
|
-
subject(:client) { KOSapiClient.new(credentials) }
|
6
|
-
|
7
|
-
|
8
|
-
it 'downloads courses data' do
|
9
|
-
page = client.courses.offset(0).limit(15).query(department: '18*')
|
10
|
-
expect(page.items.count).to eq 15
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'provides courses data details' do
|
14
|
-
page = client.courses.offset(20).query(department: '18*', completion: 'EXAM').detail
|
15
|
-
expect(page.items.last.description).not_to be_nil
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'parses entry title' do
|
19
|
-
page = client.courses
|
20
|
-
expect(page.items.first.title).not_to be_nil
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'parses empty response' do
|
24
|
-
page = client.courses.offset(1000000)
|
25
|
-
expect(page.items).to eq []
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Exams resource', :vcr, :integration do
|
4
|
-
|
5
|
-
subject(:client) { create_kosapi_client }
|
6
|
-
|
7
|
-
it 'fetches exams' do
|
8
|
-
expect(client.exams.offset(0).limit(10).count).to be > 0
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'fetches exam students' do
|
12
|
-
expect(client.exams.find(193156727405).attendees.count).to be > 0
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'allows multiple examiners' do
|
16
|
-
exam = client.exams.find(613664749005)
|
17
|
-
expect(exam.examiners.count).to be 2
|
18
|
-
expect(exam.examiners.first.link_id).to eq 'zhoufjar'
|
19
|
-
end
|
20
|
-
end
|