TriviaMD 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/quizzes_v1.rb +59 -0
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb5c0aca381ec6eb42c430427f21bde8665dc0737d0d0f2aa319756706efa229
4
- data.tar.gz: 0c7b644fdd2a304ed07c430485460e6b7ba86c5507fdf96627badc1c4517258c
3
+ metadata.gz: 8bb0784d7cbf400d2e11cadfbcb9d8f7710b43e640009d131b3fd0edbc677725
4
+ data.tar.gz: baca2775605b69b019151f544bd8efd81ba76d7388011c31d4a2e43a7d987aa1
5
5
  SHA512:
6
- metadata.gz: bf80c938e5921e87a6a0eb93e8d1ab94dbec0c86b3f84b692bbfef99bc6830eb13b80b588593988aee6d3876f72de22419ff471d2357f40f8535d02f79966818
7
- data.tar.gz: 11c6b2b5c8a523321ae0a108804272adff924a280793e81e92e0526ce82d2bd6d2dea92a7b890827beae891061d61c1e8f6018479e56217f4d7f19cc89ed05ee
6
+ metadata.gz: 39731789dbcde7931afd06c1b12c4d53ff5d1aad82e682279bdefcb1e8fb6ef6f6be13ecf8fe0bde06a9037ad6de486957f3f6807bd1f690b0d8550294cfcbb1
7
+ data.tar.gz: da71ebed756d91ac6c3b396e1e7a60bad35c57082fe443e8a4c81a5c5e5f6ad5430585a5f7d7c77afc2c2cfb144f7b05dffd89d5400c7de070d1c48dbb745109
data/lib/quizzes_v1.rb ADDED
@@ -0,0 +1,59 @@
1
+ require 'kramdown'
2
+ require 'httparty'
3
+
4
+ class QuizzesV1
5
+ def initialize(course_id)
6
+ @course_id = course_id
7
+ end
8
+
9
+ def quiz_base_url
10
+ "https://#{ENV.fetch("CANVAS_DOMAIN")}/api/v1/courses/#{@course_id}/quizzes"
11
+ end
12
+
13
+ def options(body=nil)
14
+ options = {
15
+ headers: { 'Authorization' => "Bearer #{ENV.fetch("CANVAS_API_TOKEN")}" },
16
+ format: :json
17
+ }
18
+ unless body.nil?
19
+ options[:headers]['Content-Type'] = 'application/json'
20
+ options[:body] = body.to_json
21
+ end
22
+ options
23
+ end
24
+
25
+ def create_quiz(title)
26
+ body = {
27
+ quiz: {
28
+ title: title
29
+ }
30
+ }
31
+ response = HTTParty.send(:post, quiz_base_url, options(body)).parsed_response
32
+ response["id"]
33
+ end
34
+
35
+ def create_question(quiz_id,question)
36
+ puts quiz_id
37
+ url = quiz_base_url + "/#{quiz_id}/questions"
38
+ body = {
39
+ question: {
40
+ question_text: question["question"],
41
+ question_type: "multiple_answers_question"
42
+ }
43
+ }
44
+ body[:question][:answers] = question["answers"].map do |a|
45
+ {
46
+ answer_text: a["text"],
47
+ answer_weight: a["isAnswer"] == true ? 100 : 0
48
+ }
49
+ end
50
+ response = HTTParty.send(:post, url, options(body)).parsed_response
51
+ response
52
+ end
53
+
54
+ def create_from_trivia(trivias)
55
+ parsed = JSON.parse(trivias)
56
+ quiz_id = create_quiz("Catalog quiz #{Time.now.iso8601}")
57
+ parsed.each { |q| create_question(quiz_id, q) }
58
+ end
59
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: TriviaMD
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
  - Bence Pjatacsuk
@@ -60,6 +60,7 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - bin/trivia-md
63
+ - lib/quizzes_v1.rb
63
64
  - lib/trivia_md.rb
64
65
  - lib/trivia_parser.rb
65
66
  homepage: https://rubygems.org/gems/trivia_md