japanda 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 75a79e6f6563fd41f8875193443cd1ca5ee3adfa
4
- data.tar.gz: cbf89675cd0814e3f1f28f5389086d5dbfc5a260
3
+ metadata.gz: abbd951e967108454451a2dead9d17e93c1c2ba7
4
+ data.tar.gz: a2c8ee97e2f6ac89b5374365008609639600026f
5
5
  SHA512:
6
- metadata.gz: e9d7018ac25554bce9d6679dc83d6697130ec5318be1d63b267c1d70c73577006c0286af41e6cfc1c0e2128741c0bb9b49987f7bfd49d0ab0f5c62abb30d3d62
7
- data.tar.gz: 96e479921c83bb3d91c31d9d2f9bb00921c0624bc2a186875c152aff0d61a3a2f3aa93e7e5883d6e4b27bd463fec49be5bc5be7fa17d8f816e3454b6aadf502f
6
+ metadata.gz: 7dcce860b5fede22513b30ff8fb051b249a797d8b0bb2e2b03ac53c0350d34abc7aa11f700ab7ade14414f568e07bbe13a1300e8d0b904af508cbba9b5536e5d
7
+ data.tar.gz: 6318804d2b3153d09bd9077d910be80e11e9b96644d498e3dd18e0aaf07b2d650e923ef5044c4b04e9f0e94ebb3d230f4f0325c0e604b285fedfeed2d789edcb
data/README.md CHANGED
@@ -23,11 +23,13 @@ Or install it yourself as:
23
23
  ## Usage
24
24
  Set a few enviroment variables:
25
25
 
26
+ ```ruby
26
27
  export CANVAS_API_HOST=
27
28
  export CANVAS_API_TOKEN=
28
29
  export CANVAS_ACCOUNT_ID=
29
30
  export GALLERY_API_HOST=
30
31
  export GALLERY_API_TOKEN=
32
+ ```
31
33
 
32
34
  ## Development
33
35
 
@@ -1,16 +1,5 @@
1
1
  require 'japanda/version'
2
2
  require 'securerandom'
3
- require 'dotenv'
4
3
 
5
4
  module Japanda
6
- Dotenv.load
7
- CANVAS_USER_DOMAIN ||= ENV['CANVAS_USER_DOMAIN']
8
- CANVAS_API_V1 ||= "#{ENV['CANVAS_API_HOST']}/api/v1"
9
- CANVAS_AUTH_HEADER ||= {
10
- Authorization: "Bearer #{ENV['CANVAS_API_TOKEN']}",
11
- content_type: 'application/json'
12
- }
13
- CANVAS_ACCOUNT_ID ||= ENV['CANVAS_ACCOUNT_ID']
14
- GALLERY_API_TOKEN ||= ENV['GALLERY_API_TOKEN']
15
- GALLERY_API_HOST = ENV['GALLERY_API_HOST']
16
5
  end
@@ -0,0 +1,10 @@
1
+ require 'dotenv'
2
+ module CanvasFactory
3
+ Dotenv.load
4
+ CANVAS_API_V1 ||= "#{ENV['CANVAS_API_HOST']}/api/v1"
5
+ CANVAS_AUTH_HEADER ||= {
6
+ Authorization: "Bearer #{ENV['CANVAS_API_TOKEN']}",
7
+ content_type: 'application/json'
8
+ }
9
+ CANVAS_ACCOUNT_ID ||= ENV['CANVAS_ACCOUNT_ID']
10
+ end
@@ -0,0 +1,22 @@
1
+ # canvas course class
2
+ module CanvasFactory
3
+ class Course
4
+ attr_reader :course_response, :course_id, :course_config, :course_code, :course_name
5
+
6
+ def initialize(course_config = nil)
7
+ @course_config = course_config
8
+ @course_config = CanvasFactory::CourseConfig.new if course_config.nil?
9
+ end
10
+
11
+ def create
12
+ @course_config.set_course_request
13
+ course_end_point = "#{CANVAS_API_V1}/accounts/#{@course_config.account_id}/courses"
14
+ response = RestClient.post course_end_point, @course_config.course_request, CANVAS_AUTH_HEADER
15
+ @course_response = JSON.parse(response)
16
+ @course_id = @course_response['id']
17
+ @course_name = @course_response['name']
18
+ @course_code = @course_response['course_code']
19
+ self
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ module CanvasFactory
2
+ class CourseConfig
3
+ attr_accessor :course_request, :account_id, :name, :course_code, :start_at, :end_at, :offer
4
+
5
+ def initialize(opts = {})
6
+ course_name_code = "auto#{SecureRandom.hex}"
7
+ @account_id = opts[:account_id] || CANVAS_ACCOUNT_ID
8
+ @name = opts[:name] || course_name_code
9
+ @course_code = opts[:course_code] || course_name_code
10
+ @start_at = opts[:start_at] || Time.now
11
+ @end_at = opts[:end_at] || Time.now + (30 * 24 * 60 * 60)
12
+ @offer = opts[:offer] || true
13
+ end
14
+
15
+ def set_course_request
16
+ @course_request = {
17
+ account_id: @account_id,
18
+ course: {
19
+ name: @name,
20
+ course_code: @course_code,
21
+ start_at: @start_at,
22
+ end_at: @end_at
23
+ },
24
+ offer: @offer
25
+ }
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ # canvas user class
2
+ module CanvasFactory
3
+ class User
4
+ attr_reader :user_response, :user_response_id, :user_response_email_id, :user_short_name, :user_password
5
+
6
+ def initialize(user_config = nil)
7
+ @user_config = user_config
8
+ @user_config = CanvasFactory::UserConfig.new if user_config.nil?
9
+ end
10
+
11
+ def create_learner_user
12
+ @user_config.set_up_user_hash
13
+ body = @user_config.config_user_hash
14
+ user_end_point = "#{CANVAS_API_V1}/accounts/#{CANVAS_ACCOUNT_ID}/users"
15
+ response = RestClient.post user_end_point, body, CANVAS_AUTH_HEADER
16
+ @user_response = JSON.parse(response)
17
+ @user_response_id = @user_response['id']
18
+ @user_response_email_id = @user_response['login_id']
19
+ @user_short_name = @user_config.short_name
20
+ @user_password = @user_config.password
21
+ end
22
+
23
+ def create_admin_user
24
+ create_learner_user
25
+ @user_config.set_up_admin_hash(@user_response['id'].to_i)
26
+ body = @user_config.config_admin_hash
27
+ a_end_point = "#{CANVAS_API_V1}/accounts/#{CANVAS_ACCOUNT_ID}/admins"
28
+ RestClient.post a_end_point, body, CANVAS_AUTH_HEADER
29
+ end
30
+ end
31
+ end
@@ -1,17 +1,17 @@
1
1
  module CanvasFactory
2
2
  class UserConfig
3
3
  attr_reader :config_user_hash, :config_admin_hash
4
- attr_writer :email_prefix, :password, :short_name, :terms_of_use, :send_confirmation, :force_validations, :role_id, :email_id
4
+ attr_accessor :email_prefix, :password, :short_name, :terms_of_use, :send_confirmation, :force_validations, :role_id, :email_id
5
5
 
6
- def initialize
7
- @email_prefix = 'catauto'
8
- @password = 'Testing01'
9
- @short_name = 'cat auto'
10
- @terms_of_use = '1'
11
- @send_confirmation = true
12
- @force_validations = true
13
- @email_id = "#{@email_prefix}#{SecureRandom.hex}@example.com"
14
- @role_id = 'AccountAdmin'
6
+ def initialize(opts = {})
7
+ @email_prefix = opts[:email_prefix] || 'catauto'
8
+ @password = opts[:password] || 'Testing01'
9
+ @short_name = opts[:short_name] || 'cat auto'
10
+ @terms_of_use = opts[:terms_of_use] || '1'
11
+ @send_confirmation = opts[:send_confirmation] || true
12
+ @force_validations = opts[:force_validations] || true
13
+ @role_id = opts[:role_id] || 'AccountAdmin'
14
+ @email_id = opts[:email_id] || "#{@email_prefix}#{SecureRandom.hex}@example.com"
15
15
  end
16
16
 
17
17
  def set_up_user_hash
@@ -0,0 +1,6 @@
1
+ require 'dotenv'
2
+ module CatalogFactory
3
+ Dotenv.load
4
+ GALLERY_API_TOKEN ||= ENV['GALLERY_API_TOKEN']
5
+ GALLERY_API_HOST = ENV['GALLERY_API_HOST']
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Japanda
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: japanda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Santosh Natarajan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-15 00:00:00.000000000 Z
11
+ date: 2015-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -112,15 +112,18 @@ files:
112
112
  - bin/console
113
113
  - bin/setup
114
114
  - japanda.gemspec
115
- - lib/canvas_factory/assignment.rb
116
- - lib/canvas_factory/course.rb
117
- - lib/canvas_factory/module.rb
118
- - lib/canvas_factory/module_item.rb
119
- - lib/canvas_factory/section.rb
120
- - lib/canvas_factory/user.rb
121
- - lib/canvas_factory/user_config.rb
122
- - lib/catalog_factory/course_program.rb
123
115
  - lib/japanda.rb
116
+ - lib/japanda/canvas_factory.rb
117
+ - lib/japanda/canvas_factory/assignment.rb
118
+ - lib/japanda/canvas_factory/course.rb
119
+ - lib/japanda/canvas_factory/course_config.rb
120
+ - lib/japanda/canvas_factory/module.rb
121
+ - lib/japanda/canvas_factory/module_item.rb
122
+ - lib/japanda/canvas_factory/section.rb
123
+ - lib/japanda/canvas_factory/user.rb
124
+ - lib/japanda/canvas_factory/user_config.rb
125
+ - lib/japanda/catalog_factory.rb
126
+ - lib/japanda/catalog_factory/course_program.rb
124
127
  - lib/japanda/version.rb
125
128
  homepage: https://github.com/babababili/japanda
126
129
  licenses:
@@ -1,55 +0,0 @@
1
- # canvas course class
2
- module CanvasFactory
3
- class Course
4
- attr_reader :course_response, :modules, :sections
5
-
6
- def initialize(opts = {})
7
- @options = {
8
- name: 'catauto',
9
- module: {
10
- size: 1,
11
- assignment:
12
- { size: 2 }
13
- },
14
- section: { size: 3 }
15
- }.update(opts)
16
-
17
- add_a_course @options
18
- add_modules(@options)
19
- add_sections(@options)
20
- end
21
-
22
- def add_sections(opts)
23
- s = CanvasFactory::Section.new
24
- s.create_multiple_sections(opts)
25
- @sections = s.sections
26
- end
27
-
28
- def add_modules(opts)
29
- m = CanvasFactory::Module.new
30
- m.create_modules(opts)
31
- @modules = m.modules
32
- end
33
-
34
- def add_a_course(opts = {})
35
- name = "#{opts[:name]}#{SecureRandom.hex}"
36
- body = {
37
- account_id: CANVAS_ACCOUNT_ID,
38
- course: {
39
- name: name,
40
- course_code: name,
41
- start_at: Time.now,
42
- end_at: Time.now + (30 * 24 * 60 * 60)
43
- },
44
- offer: true
45
- }
46
- body.deep_merge!(opts[:course_options]) unless opts[:course_options].nil?
47
-
48
- course_end_point = "#{CANVAS_API_V1}/accounts/#{CANVAS_ACCOUNT_ID}/courses"
49
- response = RestClient.post course_end_point, body, CANVAS_AUTH_HEADER
50
- @course_response = JSON.parse(response)
51
- fail 'create canvas course failed' unless @course_response['workflow_state'].eql? 'available'
52
- @options[:course_id] = @course_response['id']
53
- end
54
- end
55
- end
@@ -1,28 +0,0 @@
1
- # canvas user class
2
- module CanvasFactory
3
- class User
4
- attr_reader :user_response, :user_response_id, :user_response_email_id, :user_short_name, :user_password
5
- def initialize
6
- end
7
-
8
- def create_catalog_user(user_config)
9
- user_config.set_up_user_hash
10
- body = user_config.config_user_hash
11
- user_end_point = "#{Japanda::CANVAS_API_V1}/accounts/#{Japanda::CANVAS_ACCOUNT_ID}/users"
12
- response = RestClient.post user_end_point, body, Japanda::CANVAS_AUTH_HEADER
13
- @user_response = JSON.parse(response)
14
- @user_response_id = @user_response['id']
15
- @user_response_email_id = @user_response['login_id']
16
- @user_short_name = user_config.config_user_hash[:user][:short_name]
17
- @user_password = user_config.config_user_hash[:pseudonym][:password]
18
- end
19
-
20
- def create_admin_user(user_config)
21
- create_catalog_user user_config
22
- user_config.set_up_admin_hash(@user_response['id'].to_i)
23
- body = user_config.config_admin_hash
24
- a_end_point = "#{Japanda::CANVAS_API_V1}/accounts/#{Japanda::CANVAS_ACCOUNT_ID}/admins"
25
- RestClient.post a_end_point, body, Japanda::CANVAS_AUTH_HEADER
26
- end
27
- end
28
- end