mettlr 0.1.1 → 0.1.2

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: 6885a7d945f91fb1f11570ca0ea4de4b05301416
4
- data.tar.gz: 98de5c52b049d4f38a039b1dab9b954a825792af
3
+ metadata.gz: 219ab92143d48bf23334afe62aade303a4d408fc
4
+ data.tar.gz: 02524abaff7e64f7d1c261a69c1957f4ade32eb0
5
5
  SHA512:
6
- metadata.gz: 0a07742674bb0ec8a6a40bdc1de19a6f532b0ab2409830470351ccb2deeefd8cb2fa95816058fd057aa7454e5308b9a830edea68c80b0486b72246a0aaf3729f
7
- data.tar.gz: 0b5b459e18bfc659eb80c870ea5c9f425c1d6be9808e57d7fb5d98c858c1c504e5c231eac75bf4d952e37f0ae33eba336a7ba62ca4bd7662c16de7a301449fea
6
+ metadata.gz: 66b07a51d8355c2417a1dd28a37e6e777f5a834beeb9bae6a0c29ad097b8f7a529cb6160f83b46bed0f44ff6d7b1dc5929428b6bb3a3d199d5b2c5759e016fdb
7
+ data.tar.gz: 7404d98b66d1d74e936b2fb7916e0dbabf6424dfb16bd45497f76febe593de5e921173b34f5d283bab5d4e6b10ad2a1ab1803ee9538f14aa4a1e2e20773a030e
@@ -6,6 +6,8 @@ require 'base64'
6
6
  require 'hashie'
7
7
  require 'active_support'
8
8
  require 'json'
9
+ require 'dry-initializer'
10
+ require 'dry-types'
9
11
 
10
12
  require "mettlr/connection"
11
13
  require "mettlr/sig_gen"
@@ -1,5 +1,24 @@
1
+ require 'ostruct'
1
2
  module Mettlr
2
3
  class Schedule < Base
4
+ extend Dry::Initializer
5
+ option :assessment_id, types: Dry::Types['strict.int']
6
+ option :name, type: Dry::Types['coercible.string']
7
+ option :image_proctoring, type: Dry::Types['bool']
8
+ option :is_candidate_auth_proctored, type: Dry::Types['bool']
9
+ option :access, type: Dry::Types['hash']
10
+ option :web_proctoring, type: Dry::Types['hash']
11
+ option :schedule_type, type: Dry::Types['string']
12
+ option :ip_access_restriction, type: Dry::Types['hash']
13
+ option :test_grade_notification, type: Dry::Types['hash']
14
+ option :allow_copy_paste, type: Dry::Types['bool']
15
+ option :source_app, Dry::Types['coercible.string']
16
+ option :test_start_notification_url, type: Dry::Types['strict.string']
17
+ option :test_finish_notification_url, type: Dry::Types['strict.string']
18
+ option :test_graded_notification_url, type: Dry::Types['strict.string']
19
+ option :test_resume_enabled_for_expired_test_url, optional: true
20
+ option :exit_redirection_url, optional: true
21
+ option :schedule_window
3
22
  def self.find_all
4
23
  Mettlr::Connection.get("/v1/schedules").body.schedules.map {|x| new(x)}
5
24
  end
@@ -7,5 +26,28 @@ module Mettlr
7
26
  options = {"rd" => {"registrationDetails" => [candidate.to_params]}}
8
27
  Mettlr::Connection.post("/v1/schedules/#{access_key}/candidates", options)
9
28
  end
29
+ def create!
30
+ Mettlr::Connection.post("/v1/assessments/#{@assessment_id}/schedules", to_param)
31
+ end
32
+ def to_param
33
+ {"sc" => { "assessmentId" => @assessment_id,
34
+ "name" => @name,
35
+ "imageProctoring" => @image_proctoring,
36
+ "isCandidateAuthProctored": @is_candidate_auth_proctored,
37
+ "webProctoring" => @web_proctoring,
38
+ "scheduleWindow" => @schedule_window,
39
+ "scheduleType" => @schedule_type,
40
+ "access" => @access,
41
+ "sourceApp" => @source_app,
42
+ "ipAccessRestriction" => @ip_access_restriction,
43
+ "testGradeNotification" => @test_grade_notification,
44
+ "allowCopyPaste" => @allow_copy_paste,
45
+ "exitRedirectionUrl" => @exit_redirection_url,
46
+ "testStartNotificationUrl" => @test_start_notification_url,
47
+ "testFinishNotificationUrl" => @test_finish_notification_url,
48
+ "testGradedNotificationUrl" => @test_graded_notification_url,
49
+ "testResumeEnabledForExpiredTestURL" => @test_resume_enabled_for_expired_test_url}
50
+ }
51
+ end
10
52
  end
11
53
  end
@@ -1,3 +1,3 @@
1
1
  module Mettlr
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -33,6 +33,8 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'faraday_middleware'
34
34
  spec.add_dependency "hashie"
35
35
  spec.add_dependency "activesupport"
36
+ spec.add_dependency "dry-initializer"
37
+ spec.add_dependency "dry-types"
36
38
  spec.add_development_dependency "bundler", "~> 1.14"
37
39
  spec.add_development_dependency "rake", "~> 10.0"
38
40
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mettlr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Danko
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: dry-initializer
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: dry-types
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: bundler
71
99
  requirement: !ruby/object:Gem::Requirement