Skip to content

Commit 7a7038a

Browse files
Andriy AkulovAndriy Akulov
authored andcommitted
Add user lom user role support for organization resource
1 parent f1344ef commit 7a7038a

File tree

2 files changed

+44
-14
lines changed

2 files changed

+44
-14
lines changed

lib/common_cartridge/elements/organizations.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module CommonCartridge
22
module Elements
33
module Organizations
4+
45
class Item
56
attr_accessor :type
67

lib/common_cartridge/elements/resources.rb

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,16 @@ module CommonCartridge
1010
module Elements
1111
module Resources
1212

13-
def self.type_mappings
14-
{
15-
Topic.pattern => Topic,
16-
WebLink.pattern => WebLink,
17-
Assignment.pattern => Assignment,
18-
Assessment.pattern => Assessment,
19-
Page.pattern => Page,
20-
BasicLtiLink::BasicLtiLink.pattern => BasicLtiLink::BasicLtiLink
21-
}
22-
end
23-
13+
def self.type_mappings
14+
{
15+
Topic.pattern => Topic,
16+
WebLink.pattern => WebLink,
17+
Assignment.pattern => Assignment,
18+
Assessment.pattern => Assessment,
19+
Page.pattern => Page,
20+
BasicLtiLink::BasicLtiLink.pattern => BasicLtiLink::BasicLtiLink
21+
}
22+
end
2423

2524
class Content
2625
include SAXMachine
@@ -61,7 +60,33 @@ class File
6160
element :attachments, class: Attachments::RootAttachment, as: :attachment_root
6261
elements :dependency, class: Dependency, as: :dependencies
6362

64-
def attachments; attachment_root.attachments; end
63+
def attachments
64+
attachment_root.attachments;
65+
end
66+
end
67+
68+
class EndUserRole
69+
include SAXMachine
70+
71+
element 'lom:value', as: :role
72+
end
73+
74+
class Educational
75+
include SAXMachine
76+
77+
element 'lom:intendedEndUserRole', class: CommonCartridge::Elements::Resources::EndUserRole, as: :end_user_role
78+
end
79+
80+
class Lom
81+
include SAXMachine
82+
83+
element 'lom:educational', class: CommonCartridge::Elements::Resources::Educational, as: :educational
84+
end
85+
86+
class Metadata
87+
include SAXMachine
88+
89+
element 'lom:lom', class: CommonCartridge::Elements::Resources::Lom, as: :lom
6590
end
6691

6792
class Resource
@@ -76,13 +101,17 @@ class Resource
76101

77102
elements :file, class: File, as: :files
78103
elements :dependency, class: Dependency, as: :dependencies
104+
element :metadata, class: CommonCartridge::Elements::Resources::Metadata, as: :metadata
79105

106+
def role
107+
metadata&.lom&.educational&.end_user_role&.end_user_role&.role
108+
end
80109

81110
# Switch statement based on 'type'
82111
def points_possible
83112
@points_possible ||= if dependency = dependencies.detect { |d| d.points_possible && !d.points_possible.empty? }
84-
dependency.points_possible
85-
end
113+
dependency.points_possible
114+
end
86115
end
87116

88117
def title

0 commit comments

Comments
 (0)