agilix 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: 0a82f77811d3cfeb64d923f26b0ea861505f62d304aeac3f50ea1ccd0bdefc14
4
- data.tar.gz: bc528e6a6ae236c48856e6a824538638b95ce4ecd15e7d878c4f1b452f0d48b1
3
+ metadata.gz: 13bbcf27a8daa395a4e36a627dc9deb051ca2eb6d59d8b7461e75d2f5e002001
4
+ data.tar.gz: 4868b13937a95a056514a5b084a6da3b3bdec86f0032de5af76f6e7d47984ff6
5
5
  SHA512:
6
- metadata.gz: 588b495b07ef024a8769457a760461938cb5791068e1e6aa451e61c649250250c811cb58c64546758461ac1e91bea697b7f18e0fd597ad385354c9c3c7974cde
7
- data.tar.gz: 267fa0d5a739c92ce0220205dfcb09cc43d3cb9ff8a110e17e581e2624b7a3bd7157d042258bb10f0c36c1fe0944c9354bdeae2196ddd4ea0e001edd50bc79eb
6
+ metadata.gz: 28650a6f11ff0d3bb4aa4d0f4e4597679d889392cee1436c2827459d0fdfc6c30f707c7fb9797ea07db75873da0bd81bcb5a6b23042d2677c9b8d6641d18ca63
7
+ data.tar.gz: 6edb84ced7f75aad3c80be7018e866d1be80689e19fe5fcf8ba2dc61ca43a61899ffe29ed149b1bc55f50c57aab42be3c57a086a48f93675846f272ad6848545
data/README.md CHANGED
@@ -374,20 +374,129 @@ api.update_courses [{courseid: 60994, title: "Updated Course"}]
374
374
 
375
375
  ## Enrollments
376
376
 
377
- - [ ] [CreateEnrollments](https://api.agilixbuzz.com/docs/#!/Command/CreateEnrollments)
378
- - [ ] [DeleteEnrollments](https://api.agilixbuzz.com/docs/#!/Command/DeleteEnrollments)
379
- - [ ] [GetEnrollment3](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollment3)
380
- - [ ] [GetEnrollmentActivity](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentActivity)
381
- - [ ] [GetEnrollmentGradebook2](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentGradebook2)
382
- - [ ] [GetEnrollmentGroupList](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentGroupList)
383
- - [ ] [GetEnrollmentMetricsReport](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentMetricsReport)
384
- - [ ] [ListEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListEnrollments)
385
- - [ ] [ListEnrollmentsByTeacher](https://api.agilixbuzz.com/docs/#!/Command/ListEnrollmentsByTeacher)
386
- - [ ] [ListEntityEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListEntityEnrollments)
387
- - [ ] [ListUserEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListUserEnrollments)
388
- - [ ] [PutSelfAssessment](https://api.agilixbuzz.com/docs/#!/Command/PutSelfAssessment)
389
- - [ ] [RestoreEnrollment](https://api.agilixbuzz.com/docs/#!/Command/RestoreEnrollment)
390
- - [ ] [UpdateEnrollments](https://api.agilixbuzz.com/docs/#!/Command/UpdateEnrollments)
377
+ #### [CreateEnrollments](https://api.agilixbuzz.com/docs/#!/Command/CreateEnrollments)
378
+ ISSUE: API format is very inconsistent on this one, requires both query string modification & body modification
379
+ ```
380
+ api.create_enrollments [{userid: 57026, entityid: 57025}]
381
+ ```
382
+
383
+ #### [DeleteEnrollments](https://api.agilixbuzz.com/docs/#!/Command/DeleteEnrollments)
384
+ ISSUE: Inconsistent from other delete apis. many are singular, not plural
385
+ ```
386
+ api.delete_enrollments [ { enrollmentid: 60997 }]
387
+ ```
388
+
389
+ #### [GetEnrollment3](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollment3)
390
+ This is aliased to `get_enrollment`
391
+ ```
392
+ api.get_enrollment enrollmentid: 60997
393
+ ```
394
+
395
+ #### [GetEnrollmentActivity](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentActivity)
396
+ ```
397
+ api.get_enrollment_activity enrollmentid: 60997
398
+ ```
399
+
400
+ #### [GetEnrollmentGradebook2](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentGradebook2)
401
+ ```
402
+ api.get_enrollment_gradebook enrollmentid: 60997
403
+ ```
404
+
405
+ #### [GetEnrollmentGroupList](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentGroupList)
406
+ ```
407
+ api.get_enrollment_group_list enrollmentid: 60997
408
+ ```
409
+
410
+ #### [GetEnrollmentMetricsReport](https://api.agilixbuzz.com/docs/#!/Command/GetEnrollmentMetricsReport)
411
+ This is available in two types:
412
+ Student Report
413
+ ```
414
+ api.get_enrollment_metrics_report entityid: 50725, report: "Student"
415
+ ```
416
+ Enrollment Report
417
+ ```
418
+ api.get_enrollment_metrics_report entityid: 50725, report: "Enrollment"
419
+ ```
420
+
421
+ #### [ListEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListEnrollments)
422
+ ```
423
+ api.list_enrollments domainid: 50725
424
+ ```
425
+
426
+ #### [ListEnrollmentsByTeacher](https://api.agilixbuzz.com/docs/#!/Command/ListEnrollmentsByTeacher)
427
+ ```
428
+ api.list_enrollments_by_teacher teacheruserid: 50726
429
+
430
+ # If you don't pass in a teacher user id, it will default to the logged in API user
431
+
432
+ api.list_enrollments_by_teacher
433
+ ```
434
+
435
+ #### [ListEntityEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListEntityEnrollments)
436
+ ```
437
+ api.list_entity_enrollments entityid: 60982
438
+ ```
439
+
440
+ #### [ListUserEnrollments](https://api.agilixbuzz.com/docs/#!/Command/ListUserEnrollments)
441
+ ```
442
+ api.list_user_enrollments userid: 57181
443
+ ```
444
+
445
+ #### [PutSelfAssessment](https://api.agilixbuzz.com/docs/#!/Command/PutSelfAssessment)
446
+ # ISSUE: this should be a post, not a get
447
+ ```
448
+ api.put_self_assessment enrollmentid: 60997, understanding: 200, effort: 220, interest: 100
449
+ ```
450
+
451
+ #### [RestoreEnrollment](https://api.agilixbuzz.com/docs/#!/Command/RestoreEnrollment)
452
+ ```
453
+ api.restore_enrollment enrollmentid: 60997
454
+ ```
455
+
456
+ #### [UpdateEnrollments](https://api.agilixbuzz.com/docs/#!/Command/UpdateEnrollments)
457
+ ```
458
+ api.update_enrollments [{enrollmentid: 60997, status: 7}]
459
+ ```
460
+
461
+ ## General
462
+
463
+ #### [Echo](https://api.agilixbuzz.com/docs/#!/Command/Echo)
464
+ ```
465
+ api.echo test: 'param'
466
+ ```
467
+
468
+ #### [GetCommandList](https://api.agilixbuzz.com/docs/#!/Command/GetCommandList)
469
+ ```
470
+ api.get_command_list
471
+ ```
472
+
473
+ #### [GetEntityType](https://api.agilixbuzz.com/docs/#!/Command/GetEntityType)
474
+ ISSUE: nothing saying this is an authenticated call, when others are non-authenticated
475
+ ```
476
+ api.get_entity_type entityid: 57025
477
+ ```
478
+
479
+ #### [GetStatus](https://api.agilixbuzz.com/docs/#!/Command/GetStatus)
480
+ ISSUE: docs in getting started reference a `level` param, actual docs suggest using rating
481
+ ```
482
+ api.get_status rating: 4, html: true, sms: true
483
+
484
+ # you can also call this one non-authenticated
485
+ api.get_basic_status
486
+ ```
487
+
488
+ #### [GetUploadLimits](https://api.agilixbuzz.com/docs/#!/Command/GetUploadLimits)
489
+ ISSUE: Docs have cmd spelled wrong, this API doesn't seem to work at all AccessDenied. It did say experimental
490
+ ```
491
+ api.get_upload_limits
492
+ api.get_upload_limits domainid: 57025
493
+ ```
494
+
495
+ #### [SendMail](https://api.agilixbuzz.com/docs/#!/Command/SendMail)
496
+ This is one of the more confusing APIs, it allows you to send emails to people in the same enrollment grouping as the person wanting to send the email (`enrollmentid`).
497
+ ```
498
+ api.send_mail subject: "Test email", body: "Did you get this?", enrollmentid: 60997, enrollment_ids: ["all"]
499
+ ```
391
500
 
392
501
  ## Rights
393
502
 
@@ -434,15 +543,6 @@ api.update_courses [{courseid: 60994, title: "Updated Course"}]
434
543
  - [ ] [SubmitAttemptAnswers](https://api.agilixbuzz.com/docs/#!/Command/SubmitAttemptAnswers)
435
544
  - [ ] [SubmitOfflineAttempt](https://api.agilixbuzz.com/docs/#!/Command/SubmitOfflineAttempt)
436
545
 
437
- ## General
438
-
439
- - [ ] [Echo](https://api.agilixbuzz.com/docs/#!/Command/Echo)
440
- - [ ] [GetCommandList](https://api.agilixbuzz.com/docs/#!/Command/GetCommandList)
441
- - [ ] [GetEntityType](https://api.agilixbuzz.com/docs/#!/Command/GetEntityType)
442
- - [ ] [GetStatus](https://api.agilixbuzz.com/docs/#!/Command/GetStatus)
443
- - [ ] [GetUploadLimits](https://api.agilixbuzz.com/docs/#!/Command/GetUploadLimits)
444
- - [ ] [SendMail](https://api.agilixbuzz.com/docs/#!/Command/SendMail)
445
-
446
546
  ## Manifests and Items
447
547
 
448
548
  - [ ] [AssignItem](https://api.agilixbuzz.com/docs/#!/Command/AssignItem)
@@ -6,6 +6,7 @@ require "ostruct"
6
6
  require "agilix/buzz/commands/authentication"
7
7
  require "agilix/buzz/commands/course"
8
8
  require "agilix/buzz/commands/domain"
9
+ require "agilix/buzz/commands/enrollment"
9
10
  require "agilix/buzz/commands/general"
10
11
  require "agilix/buzz/commands/report"
11
12
  require "agilix/buzz/commands/user"
@@ -8,6 +8,7 @@ module Agilix
8
8
  include Agilix::Buzz::Commands::Authentication
9
9
  include Agilix::Buzz::Commands::Course
10
10
  include Agilix::Buzz::Commands::Domain
11
+ include Agilix::Buzz::Commands::Enrollment
11
12
  include Agilix::Buzz::Commands::General
12
13
  include Agilix::Buzz::Commands::Report
13
14
  include Agilix::Buzz::Commands::User
@@ -32,6 +33,11 @@ module Agilix
32
33
  post query
33
34
  end
34
35
 
36
+ def authenticated_query_post(query = {})
37
+ check_authentication unless query.delete(:bypass_authentication_check)
38
+ query_post query
39
+ end
40
+
35
41
  def authenticated_bulk_post(query = {})
36
42
  check_authentication
37
43
  bulk_post query
@@ -45,9 +51,23 @@ module Agilix
45
51
  response = self.class.post(URL_BASE, body: modify_body(query), timeout: 60, headers: headers)
46
52
  end
47
53
 
54
+ # For when the api is super unconventional & you need to modify both query params & body params in a custom fashion
55
+ def query_post(query = {})
56
+ url = URL_BASE
57
+ query_params = query.delete(:query_params)
58
+ if query_params
59
+ url += "?&_token=#{token}" + query_params.map {|k,v| "&#{k}=#{v}" }.join("")
60
+ end
61
+ response = self.class.post(url, body: query.to_json, timeout: 60, headers: headers)
62
+ end
63
+
48
64
  def bulk_post(query = {})
49
65
  cmd = query.delete(:cmd)
50
66
  url = URL_BASE + "?cmd=#{cmd}&_token=#{token}"
67
+ query_params = query.delete(:query_params)
68
+ if query_params
69
+ url += query_params.map {|k,v| "&#{k}=#{v}" }.join("")
70
+ end
51
71
  response = self.class.post(url, body: modify_bulk_body(query), timeout: 60, headers: headers)
52
72
  end
53
73
 
@@ -0,0 +1,140 @@
1
+ module Agilix
2
+ module Buzz
3
+ module Commands
4
+ module Enrollment
5
+
6
+ def enrollment_status
7
+ {
8
+ active: 1,
9
+ withdrawn: 4,
10
+ withdrawn_failed: 5,
11
+ transferred: 6,
12
+ completed: 7,
13
+ completed_no_credit: 8,
14
+ suspended: 9,
15
+ inactive: 10
16
+ }
17
+ end
18
+
19
+ def enrollment_status_lookup_value(int)
20
+ int = int.to_i
21
+ raise ArgumentError.new("Not a valid enrollment status code") unless enrollment_status.values.include?(int)
22
+ enrollment_status.find {|k,v| v == int}.first
23
+ end
24
+
25
+ # ISSUE: API format is very inconsistent on this one, requires both query string modification & body modification
26
+ # api.create_enrollments [{userid: 57026, entityid: 57025}]
27
+ def create_enrollments(items = [], disallowduplicates: false, disallowsamestatusduplicates: false )
28
+ options = items.map do |item|
29
+ item[:status] ||= 1
30
+ argument_cleaner(required_params: %i( userid entityid status ), optional_params: %i( roleid flags domainid startdate enddate reference schema data ), options: item )
31
+ end
32
+ if [disallowduplicates, disallowsamestatusduplicates].compact.any?
33
+ query_params = {}
34
+ query_params[:disallowduplicates] = disallowduplicates
35
+ query_params[:disallowsamestatusduplicates] = disallowsamestatusduplicates
36
+ end
37
+ authenticated_bulk_post cmd: "createenrollments", root_node: 'enrollment', query_params: query_params, body: options
38
+ end
39
+
40
+ # ISSUE: Inconsistent from other delete apis. many are singular, not plural
41
+ # api.delete_enrollments [ { enrollmentid: 60997 }]
42
+ def delete_enrollments(items = {})
43
+ options = items.map do |item|
44
+ argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( ), options: item )
45
+ end
46
+ authenticated_bulk_post cmd: "deleteenrollments", root_node: 'enrollment', body: options
47
+ end
48
+
49
+ # api.get_enrollment enrollmentid: 60997
50
+ def get_enrollment3(options = {})
51
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( select ), options: options )
52
+ authenticated_get cmd: "getenrollment3", **options
53
+ end
54
+ alias_method :get_enrollment, :get_enrollment3
55
+
56
+ # api.get_enrollment_activity enrollmentid: 60997
57
+ def get_enrollment_activity(options = {})
58
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( last mergeoverlap ), options: options )
59
+ authenticated_get cmd: "getenrollmentactivity", **options
60
+ end
61
+
62
+ # api.get_enrollment_gradebook enrollmentid: 60997
63
+ def get_enrollment_gradebook2(options = {})
64
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( forcerequireditems gradingschemeid gradingscheme itemid scorm zerounscored ), options: options )
65
+ authenticated_get cmd: "getenrollmentgradebook2", **options
66
+ end
67
+ alias_method :get_enrollment_gradebook, :get_enrollment_gradebook2
68
+
69
+ # api.get_enrollment_group_list enrollmentid: 60997
70
+ def get_enrollment_group_list(options = {})
71
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( setid ), options: options )
72
+ authenticated_get cmd: "getenrollmentgrouplist", **options
73
+ end
74
+
75
+ # api.get_enrollment_metrics_report entityid: 50725, report: "Student"
76
+ # api.get_enrollment_metrics_report entityid: 50725, report: "Enrollment"
77
+ def get_enrollment_metrics_report(options = {})
78
+ raise ArgumentError.new("report can only be Student or Enrollment") unless ['Student', 'Enrollment'].include?(options[:report])
79
+ default_select = %w( user.id user.firstname user.lastname user.username user.reference)
80
+ student_select = %w( coursecount latecount failedcount paceyellows pacereds performanceyellows performancereds)
81
+ enrollment_select = %w(enrollment.id course.title course.id course.reference score achieved possible failing seconds completable completed gradable completedgradable graded percentcomplete late failed recentlyfailed pacelight pacereason performancelight performancereason lastduedatemissed calculateddate )
82
+ if options[:report] == "Student"
83
+ options[:select] ||= (default_select + student_select).flatten.join(",")
84
+ elsif options[:report] == "Enrollment"
85
+ options[:select] ||= (default_select + enrollment_select).flatten.join(",")
86
+ end
87
+ options = argument_cleaner(required_params: %i( entityid report select ), optional_params: %i( filename format ), options: options )
88
+ authenticated_get cmd: "getenrollmentmetricsreport", **options
89
+ end
90
+
91
+ # api.list_enrollments domainid: 50725
92
+ def list_enrollments(options = {})
93
+ options = argument_cleaner(required_params: %i( domainid ), optional_params: %i( includedescendantdomains limit show select query userdomainid userquery usertext coursedomainid coursequery coursetext ), options: options )
94
+ authenticated_get cmd: "listenrollments", **options
95
+ end
96
+
97
+ # api.list_enrollments_by_teacher teacheruserid: 50726
98
+ # api.list_enrollments_by_teacher
99
+ def list_enrollments_by_teacher(options = {})
100
+ options = argument_cleaner(required_params: %i( ), optional_params: %i( teacheruserid teacherallstatus teacherdaysactivepastend privileges allstatus daysactivepastend userid select ), options: options )
101
+ authenticated_get cmd: "listenrollmentsbyteacher", **options
102
+ end
103
+
104
+ # api.list_entity_enrollments entityid: 60982
105
+ def list_entity_enrollments(options = {})
106
+ options = argument_cleaner(required_params: %i( entityid ), optional_params: %i( privileges allstatus daysactivepastend userid select ), options: options )
107
+ authenticated_get cmd: "listentityenrollments", **options
108
+ end
109
+
110
+ # api.list_user_enrollments userid: 57181
111
+ def list_user_enrollments(options = {})
112
+ options = argument_cleaner(required_params: %i( userid ), optional_params: %i( allstatus entityid privileges daysactivepastend query select ), options: options )
113
+ authenticated_get cmd: "listuserenrollments", **options
114
+ end
115
+
116
+ # ISSUE: this should be a post, not a get
117
+ # api.put_self_assessment enrollmentid: 60997, understanding: 200, effort: 220, interest: 100
118
+ def put_self_assessment(options = {})
119
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( understanding interest effort ), options: options )
120
+ authenticated_get cmd: "putselfassessment", **options
121
+ end
122
+
123
+ # api.restore_enrollment enrollmentid: 60997
124
+ def restore_enrollment(options = {})
125
+ options = argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( ), options: options )
126
+ authenticated_get cmd: "restoreenrollment", **options
127
+ end
128
+
129
+ # api.update_enrollments [{enrollmentid: 60997, status: 7}]
130
+ def update_enrollments(items)
131
+ options = items.map do |item|
132
+ argument_cleaner(required_params: %i( enrollmentid ), optional_params: %i( userid entityid domainid roleid flags status startdate enddate reference schema data ), options: item)
133
+ end
134
+ authenticated_bulk_post cmd: "updateenrollments", root_node: 'enrollment', body: options
135
+ end
136
+
137
+ end
138
+ end
139
+ end
140
+ end
@@ -3,11 +3,67 @@ module Agilix
3
3
  module Commands
4
4
  module General
5
5
 
6
+ # api.echo test: 'param'
7
+ def echo(options= {})
8
+ post cmd: "echo", **options
9
+ end
10
+
11
+ # api.get_command_list
12
+ def get_command_list
13
+ get cmd: "getcommandlist"
14
+ end
15
+
16
+ # ISSUE: nothing saying this is an authenticated call, when others are non-authenticated
17
+ # api.get_entity_type entityid: 57025
18
+ def get_entity_type(options = {})
19
+ options = argument_cleaner(required_params: %i( entityid ), optional_params: %i( select ), options: options )
20
+ authenticated_get cmd: "getentitytype", **options
21
+ end
22
+
23
+ # ISSUE: docs in getting started reference a `level` param, actual docs suggest using rating
24
+ # api.get_status rating: 4, html: true, sms: true
25
+ def get_status(options = {})
26
+ options = argument_cleaner(required_params: %i( ), optional_params: %i( rating sms html ), options: options )
27
+ authenticated_get cmd: "getstatus", **options
28
+ end
29
+
30
+ # this is a non-authenticated call
6
31
  # api.get_status
7
- def get_status
8
- get cmd: "getstatus", level: 2
32
+ def get_basic_status(options = {})
33
+ options = argument_cleaner(required_params: %i( ), optional_params: %i( rating sms html ), options: options )
34
+ get cmd: "getstatus", **options
35
+ end
36
+
37
+ # ISSUE: Docs have cmd spelled wrong, this API doesn't seem to work at all AccessDenied. It did say experimental
38
+ # api.get_upload_limits
39
+ # api.get_upload_limits domainid: 57025
40
+ def get_upload_limits(options = {})
41
+ options = argument_cleaner(required_params: %i( ), optional_params: %i( userid domainid ), options: options )
42
+ get cmd: "getuploadlimits", **options
9
43
  end
10
44
 
45
+ # api.send_mail subject: "Test email", body: "Did you get this?", enrollmentid: 60997, enrollment_ids: ["all"]
46
+ def send_mail(options = {})
47
+ options = argument_cleaner(required_params: %i( subject body enrollmentid enrollment_ids ), optional_params: %i( groups roles strings), options: options )
48
+ request = {email: {
49
+ subject: {"$value" => options[:subject]},
50
+ body: {"$value" => options[:body]},
51
+ enrollments: {enrollment: options[:enrollment_ids].map {|id| {id: id} } }
52
+ }}
53
+ request[:email][:groups] = {group: options[:groups].map {|id| {id: id} } } if options[:groups]
54
+ request[:email][:roles] = {role: options[:roles].map {|id| {id: id} } } if options[:roles]
55
+ if options[:strings]
56
+ request[:email][:strings] = options[:strings].map do |k,v|
57
+ [ k , {"$value" => v } ]
58
+ end.to_h
59
+ end
60
+ enrollment_response = self.get_enrollment enrollmentid: options[:enrollmentid]
61
+ user_id = enrollment_response.dig("response", "enrollment", "userid")
62
+ proxy_api = self.proxy_api userid: user_id
63
+ proxy_api.authenticated_query_post query_params: {cmd: "sendmail", enrollmentid: options[:enrollmentid] }, **request
64
+ end
65
+
66
+
11
67
  end
12
68
  end
13
69
  end
@@ -1,3 +1,3 @@
1
1
  module Agilix
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1 @@
1
+ <div style=\"text-indent:0em\"><h1>certificates: <div style=\"display:inline;color:#F0F000\">Acceptable</div></h1><div style=\"text-indent:1em\"><h2>certificate (BLOCKEDMACHINE)</h2><div style=\"text-indent:2em\">The certificate is expiring soon. If it is still in use, renew the certificate and replace it. If it is not still in use, remove the certificate.</div></div></div><div style=\"text-indent:0em\"><h1>databaseaccess: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>emailaccess (BLOCKEDMACHINE/587): <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>fileaccess: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>localdisk: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>mediastreaming: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>misc: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>networkaccess: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>queueaccess: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>search: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div><div style=\"text-indent:0em\"><h1>sharedcacheaccess: <div style=\"display:inline;color:#009900\">Ideal</div></h1></div>4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agilix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Eggett
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-17 00:00:00.000000000 Z
11
+ date: 2019-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -188,10 +188,12 @@ files:
188
188
  - lib/agilix/buzz/commands/authentication.rb
189
189
  - lib/agilix/buzz/commands/course.rb
190
190
  - lib/agilix/buzz/commands/domain.rb
191
+ - lib/agilix/buzz/commands/enrollment.rb
191
192
  - lib/agilix/buzz/commands/general.rb
192
193
  - lib/agilix/buzz/commands/report.rb
193
194
  - lib/agilix/buzz/commands/user.rb
194
195
  - lib/agilix/version.rb
196
+ - stats.html
195
197
  homepage: https://github.com/beneggett/agilix
196
198
  licenses:
197
199
  - MIT