growthtribe_xapi 0.0.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 +7 -0
- data/.github/workflows/ci.yml +28 -0
- data/CHANGELOG.md +2 -0
- data/CONTRIBUTING.md +7 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +78 -0
- data/LICENSE.txt +22 -0
- data/README.md +299 -0
- data/Rakefile +12 -0
- data/bin/rspec +29 -0
- data/lib/growthtribe_xapi.rb +2 -0
- data/lib/xapi.rb +224 -0
- data/lib/xapi/about.rb +15 -0
- data/lib/xapi/activity.rb +37 -0
- data/lib/xapi/activity_definition.rb +131 -0
- data/lib/xapi/agent.rb +44 -0
- data/lib/xapi/agent_account.rb +33 -0
- data/lib/xapi/attachment.rb +64 -0
- data/lib/xapi/context.rb +54 -0
- data/lib/xapi/context_activities.rb +102 -0
- data/lib/xapi/documents/activity_profile_document.rb +15 -0
- data/lib/xapi/documents/agent_profile_document.rb +15 -0
- data/lib/xapi/documents/document.rb +20 -0
- data/lib/xapi/documents/state_document.rb +15 -0
- data/lib/xapi/enum.rb +42 -0
- data/lib/xapi/errors.rb +9 -0
- data/lib/xapi/group.rb +37 -0
- data/lib/xapi/interaction_component.rb +32 -0
- data/lib/xapi/interaction_type.rb +58 -0
- data/lib/xapi/lrs_response.rb +14 -0
- data/lib/xapi/query_result_format.rb +6 -0
- data/lib/xapi/remote_lrs.rb +416 -0
- data/lib/xapi/result.rb +46 -0
- data/lib/xapi/score.rb +39 -0
- data/lib/xapi/statement.rb +53 -0
- data/lib/xapi/statement_ref.rb +31 -0
- data/lib/xapi/statements/statements_base.rb +70 -0
- data/lib/xapi/statements_query.rb +42 -0
- data/lib/xapi/statements_query_v095.rb +42 -0
- data/lib/xapi/statements_result.rb +17 -0
- data/lib/xapi/sub_statement.rb +19 -0
- data/lib/xapi/tcapi_version.rb +27 -0
- data/lib/xapi/team.rb +44 -0
- data/lib/xapi/team_analytics_query.rb +36 -0
- data/lib/xapi/verb.rb +35 -0
- data/lib/xapi/version.rb +4 -0
- data/spec/fixtures/about.json +10 -0
- data/spec/fixtures/statement.json +33 -0
- data/spec/spec_helper.rb +107 -0
- data/spec/support/helpers.rb +60 -0
- data/spec/xapi/activity_definition_spec.rb +37 -0
- data/spec/xapi/activity_spec.rb +23 -0
- data/spec/xapi/agent_account_spec.rb +13 -0
- data/spec/xapi/agent_spec.rb +24 -0
- data/spec/xapi/attachment_spec.rb +26 -0
- data/spec/xapi/context_activities_spec.rb +57 -0
- data/spec/xapi/context_spec.rb +32 -0
- data/spec/xapi/group_spec.rb +15 -0
- data/spec/xapi/interaction_component_spec.rb +18 -0
- data/spec/xapi/remote_lrs_spec.rb +46 -0
- data/spec/xapi/result_spec.rb +24 -0
- data/spec/xapi/score_spec.rb +12 -0
- data/spec/xapi/statement_ref_spec.rb +19 -0
- data/spec/xapi/statement_spec.rb +73 -0
- data/spec/xapi/sub_statement_spec.rb +30 -0
- data/spec/xapi/verb_spec.rb +17 -0
- data/xapi.gemspec +30 -0
- metadata +244 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9b6d643a742050f1112095743443f4862b73578c88191ac1112a78fc416df1d4
|
4
|
+
data.tar.gz: 0f8164d18c901ac7831af7b731ff669a29e41fc916b06629ddd5d86b7c38a706
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d5eb2b588c4ee802db633f115b17279c2000e832d2b5d6844253ea8509882aed0bd4dcbb7b6bc9b9fa42db5b087553b135afc674f0c6e7ee9f1145682af26f00
|
7
|
+
data.tar.gz: d017dd430beec18a9ddb4218a65b69a1c7ab64499d147ca222a440ac86c1104a50ff177352b30b1f0a31336895229fa553eb80dd653ca0319a94db1fce0be07e
|
@@ -0,0 +1,28 @@
|
|
1
|
+
name: Continuous Integration
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: ['*']
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
tests:
|
11
|
+
runs-on: ${{ matrix.os }}
|
12
|
+
if: "!contains(github.event.head_commit.message, 'skip ci')"
|
13
|
+
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
matrix:
|
16
|
+
include:
|
17
|
+
- ruby: ruby-3.0
|
18
|
+
os: ubuntu-20.04
|
19
|
+
- ruby: ruby-2.7
|
20
|
+
os: ubuntu-20.04
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@v2
|
23
|
+
- run: test -e Gemfile.lock
|
24
|
+
- uses: ruby/setup-ruby@v1
|
25
|
+
with:
|
26
|
+
ruby-version: ${{ matrix.ruby }}
|
27
|
+
bundler-cache: true
|
28
|
+
- run: bin/rspec
|
data/CHANGELOG.md
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
## Contributing
|
2
|
+
|
3
|
+
1. Fork it ( https://github.com/growthtribeacademy/Xapi/fork )
|
4
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
5
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
6
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
7
|
+
5. Create a new Pull Request
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
growthtribe_xapi (0.0.1)
|
5
|
+
activesupport (>= 5.1)
|
6
|
+
addressable (~> 2.3)
|
7
|
+
faraday (~> 1.3.0)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
activesupport (6.1.2.1)
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
14
|
+
i18n (>= 1.6, < 2)
|
15
|
+
minitest (>= 5.1)
|
16
|
+
tzinfo (~> 2.0)
|
17
|
+
zeitwerk (~> 2.3)
|
18
|
+
addressable (2.7.0)
|
19
|
+
public_suffix (>= 2.0.2, < 5.0)
|
20
|
+
coderay (1.1.3)
|
21
|
+
concurrent-ruby (1.1.8)
|
22
|
+
crack (0.4.5)
|
23
|
+
rexml
|
24
|
+
diff-lcs (1.4.4)
|
25
|
+
faraday (1.3.0)
|
26
|
+
faraday-net_http (~> 1.0)
|
27
|
+
multipart-post (>= 1.2, < 3)
|
28
|
+
ruby2_keywords
|
29
|
+
faraday-net_http (1.0.1)
|
30
|
+
hashdiff (1.0.1)
|
31
|
+
i18n (1.8.9)
|
32
|
+
concurrent-ruby (~> 1.0)
|
33
|
+
method_source (1.0.0)
|
34
|
+
minitest (5.14.3)
|
35
|
+
multipart-post (2.1.1)
|
36
|
+
pry (0.14.0)
|
37
|
+
coderay (~> 1.1)
|
38
|
+
method_source (~> 1.0)
|
39
|
+
public_suffix (4.0.6)
|
40
|
+
rake (10.5.0)
|
41
|
+
rexml (3.2.4)
|
42
|
+
rspec (3.10.0)
|
43
|
+
rspec-core (~> 3.10.0)
|
44
|
+
rspec-expectations (~> 3.10.0)
|
45
|
+
rspec-mocks (~> 3.10.0)
|
46
|
+
rspec-core (3.10.1)
|
47
|
+
rspec-support (~> 3.10.0)
|
48
|
+
rspec-expectations (3.10.1)
|
49
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
50
|
+
rspec-support (~> 3.10.0)
|
51
|
+
rspec-mocks (3.10.2)
|
52
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
53
|
+
rspec-support (~> 3.10.0)
|
54
|
+
rspec-support (3.10.2)
|
55
|
+
ruby2_keywords (0.0.4)
|
56
|
+
tzinfo (2.0.4)
|
57
|
+
concurrent-ruby (~> 1.0)
|
58
|
+
webmock (3.0.1)
|
59
|
+
addressable (>= 2.3.6)
|
60
|
+
crack (>= 0.3.2)
|
61
|
+
hashdiff
|
62
|
+
zeitwerk (2.4.2)
|
63
|
+
|
64
|
+
PLATFORMS
|
65
|
+
x86_64-darwin-19
|
66
|
+
x86_64-darwin-20
|
67
|
+
x86_64-linux
|
68
|
+
|
69
|
+
DEPENDENCIES
|
70
|
+
bundler
|
71
|
+
growthtribe_xapi!
|
72
|
+
pry
|
73
|
+
rake
|
74
|
+
rspec
|
75
|
+
webmock (~> 3.0.0)
|
76
|
+
|
77
|
+
BUNDLED WITH
|
78
|
+
2.2.4
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2016 Deakin Prime
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,299 @@
|
|
1
|
+
# xAPI
|
2
|
+
|
3
|
+
A Ruby library for implementing xAPIs Statements, Profiles and Querying Statements for LRS in simple way.
|
4
|
+
|
5
|
+
For more information about the Tin Can API visit:
|
6
|
+
|
7
|
+
http://Xapi.com/
|
8
|
+
|
9
|
+
For more information about the xAPI Statements Specficiations and Components visit:
|
10
|
+
|
11
|
+
https://github.com/adlnet/xAPI-Spec
|
12
|
+
|
13
|
+
## Installation
|
14
|
+
|
15
|
+
Add this line to your application's Gemfile:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
gem 'growthtribe_xapi'
|
19
|
+
```
|
20
|
+
|
21
|
+
And then execute:
|
22
|
+
|
23
|
+
$ bundle
|
24
|
+
|
25
|
+
Or install it yourself as:
|
26
|
+
|
27
|
+
$ gem install growthtribe_xapi
|
28
|
+
|
29
|
+
This gem provided classes in `Xapi` namespace as in original `Xapi`gem,
|
30
|
+
from which it has been forked from.
|
31
|
+
|
32
|
+
## Usage
|
33
|
+
|
34
|
+
Create a remote LRS using Account credentials
|
35
|
+
```ruby
|
36
|
+
remote_lrs = Xapi.create_remote_lrs( end_point: ''https://some.lrsdomain.com'', user_name: 'username', password: 'password' )
|
37
|
+
```
|
38
|
+
|
39
|
+
Connect to the 'about' endpoint to get version information
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
# use the remote LRS from above
|
43
|
+
response = remote_lrs.about
|
44
|
+
# check if it is successful
|
45
|
+
if response.success
|
46
|
+
# access the Xapi::About instance
|
47
|
+
response.content
|
48
|
+
end
|
49
|
+
```
|
50
|
+
|
51
|
+
#Creating the Properties of a Statement
|
52
|
+
|
53
|
+
For more information about the Properties of a xAPI Statement visit:
|
54
|
+
|
55
|
+
https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md
|
56
|
+
|
57
|
+
Create a Agent for a Statement
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
# Parameters can be passed for create_agent are:
|
61
|
+
# agent_type which is either Agent or Group
|
62
|
+
# Passing email, name - if agent_type is Agent
|
63
|
+
# Passing members Array with hashes having name and email as keys - if agent_type is Group
|
64
|
+
|
65
|
+
agent = Xapi.create_agent(agent_type: 'Agent', email: 'email', name: 'name')
|
66
|
+
|
67
|
+
agent = Xapi.create_agent(agent_type: 'Group', members: [ {email: 'email1', name: 'name1'},{email: 'email2', name: 'name2'}] )
|
68
|
+
```
|
69
|
+
|
70
|
+
Create a Team for Context of a Statement
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
# Parameters can be passed for create_team are: object_type, statement_id
|
74
|
+
|
75
|
+
team = Xapi.create_team(home_page: "http://some.learnactivity.com/", name: 'team_name')
|
76
|
+
```
|
77
|
+
|
78
|
+
Create a Verb for a Statement
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
# Parameters can be passed for create_verb are: id, name
|
82
|
+
|
83
|
+
verb = Xapi.create_verb(id: 'http://adlnet.gov/expapi/verbs/launched', name: 'launched')
|
84
|
+
```
|
85
|
+
|
86
|
+
Create a Object for a Statement which is either Activity, Agent, or another Statement that is the Object of the Statement.
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
# Parameters can be passed for create_activity are: id, name, description, extensions
|
90
|
+
|
91
|
+
object = Xapi.create_activity(id: "http://some.learnactivity.com/conversation",
|
92
|
+
name: 'Learning conversation', type: 'http://adlnet.gov/expapi/activities/assessment',
|
93
|
+
description: 'Conversational Learning tool',
|
94
|
+
extensions: { "http://id.tincanapi.com/extension/planned-duration" => 'PT50M' }
|
95
|
+
)
|
96
|
+
```
|
97
|
+
|
98
|
+
Create a Context Activities for Given Context of a Statement
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
# Parameters can be passed for create_context_activities are: grouping, category, parent, other which are Array of Objects/Activitites realted to Context of a Statement
|
102
|
+
|
103
|
+
grouping_array = []
|
104
|
+
grouping_array << Xapi.create_activity( id: "http://some.learnactivity.com/topics/1",
|
105
|
+
name: 'topic title', type: "http://activitystrea.ms/schema/1.0/task"
|
106
|
+
)
|
107
|
+
context_activities = Xapi.create_context_activities(grouping: grouping_array)
|
108
|
+
```
|
109
|
+
|
110
|
+
Create a Context for a Statement
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
# Parameters can be passed for create_context are: registration, extensions, team, instructor, statement, context_activities
|
114
|
+
|
115
|
+
context = Xapi.create_context(registration: 'registration_id',
|
116
|
+
extensions: { "http://some.learnactivity.com/extension/tags" => ["domain1", "domain2"],
|
117
|
+
team: team, instructor: instructor_agent,
|
118
|
+
context_activities: context_activities
|
119
|
+
)
|
120
|
+
```
|
121
|
+
|
122
|
+
Create a Result for a Statement
|
123
|
+
|
124
|
+
```ruby
|
125
|
+
# Parameters can be passed for create_result are: scaled_score or score_details, duration, response, success, completion, extensions
|
126
|
+
|
127
|
+
result = Xapi.create_result(response: 'response details', score_details: {min: 1, raw: 7, max: 10}, success: true, extensions: {""http://some.learnactivity.com/extension/questions" => ['question1', 'question2']})
|
128
|
+
```
|
129
|
+
|
130
|
+
Create a Statement
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
# Parameters can be passed for create_remote_lrs are: actor, verb, object, context, result
|
134
|
+
|
135
|
+
statement = Xapi.create_statement(actor: agent, verb: verb, object: object, context: context, result: result)
|
136
|
+
```
|
137
|
+
|
138
|
+
Post a statement to LRS
|
139
|
+
|
140
|
+
```ruby
|
141
|
+
# Parameters can be passed for create_remote_lrs are: remote_lrs, statement
|
142
|
+
|
143
|
+
response = Xapi.post_statement(remote_lrs: remote_lrs, statement: statement)
|
144
|
+
|
145
|
+
if response.success
|
146
|
+
# access the statement
|
147
|
+
response.content
|
148
|
+
end
|
149
|
+
|
150
|
+
```
|
151
|
+
|
152
|
+
## Querying Statements required from LRS
|
153
|
+
|
154
|
+
Get Statement based on statement ID
|
155
|
+
|
156
|
+
```ruby
|
157
|
+
# Parameters can be passed for get_statements_by_query are: remote_lrs, statement_query
|
158
|
+
|
159
|
+
Xapi.get_statements_by_id(remote_lrs: remote_lrs, statement_id: '2a8785a0-8ee8-41ad-9172-e194a82e30a4')
|
160
|
+
```
|
161
|
+
|
162
|
+
Get Statements based on Queries
|
163
|
+
|
164
|
+
```ruby
|
165
|
+
# Parameters can be passed for create_statement_query are: registration_id, verb_id, activity_id
|
166
|
+
# Eithe agent details: agent_email, agent_name
|
167
|
+
# or Team details: team_home_page, team_name
|
168
|
+
# Searching related statements by passing boolean values to these: search_related_agents, search_related_activities
|
169
|
+
|
170
|
+
#Based on Team
|
171
|
+
statement_query = Xapi.create_statement_query(verb_id: 'http://id.tincanapi.com/verb rated', activity_id: 'http://some.learnactivity.com/conversation', team_home_page: 'http://some.learnactivity.com', team_name: 'team_name')
|
172
|
+
|
173
|
+
#Based on Agent
|
174
|
+
statement_query = Xapi.create_statement_query(verb_id: 'http://id.tincanapi.com/verb rated', activity_id: 'http://some.learnactivity.com/conversation', agent_email: 'email', agent_name: 'name')
|
175
|
+
|
176
|
+
result_statements_response = Xapi.get_statements_by_query(remote_lrs: remote_lrs, statement_query: statement_query)
|
177
|
+
|
178
|
+
#Knowing result statements count
|
179
|
+
result_statements_response[:statements_count]
|
180
|
+
|
181
|
+
#Knowing the result statements
|
182
|
+
JSON.parse(result_statements_response[:statements].to_json) if result_statements_response[:statements_count] > 0
|
183
|
+
```
|
184
|
+
|
185
|
+
## Creating or updating the Profiles in LRS
|
186
|
+
|
187
|
+
Create/Update Activity Profile
|
188
|
+
|
189
|
+
```ruby
|
190
|
+
# Parameters can be passed for create_activity_profile are: remote_lrs, profile_id, activity_object, profile_content
|
191
|
+
|
192
|
+
activity_object = Xapi.create_activity(id: 'http://some.leranactivity.com/topics/1', name: 'title', type: 'http://activitystrea.ms/schema/1.0/task' )
|
193
|
+
|
194
|
+
profile_content = { "name"=> "title", "description" => "description", "relevance" => "relevance", "type" => "http://some.leranactivity.com/evidences/document"
|
195
|
+
}
|
196
|
+
Xapi.create_activity_profile(remote_lrs: remote_lrs, profile_id: 'topic profile', activity_object: activity_object, profile_content: profile_activity_content)
|
197
|
+
|
198
|
+
Xapi.update_activity_profile(remote_lrs: remote_lrs, profile_id: 'topic profile', activity_object: activity_object, profile_content: profile_activity_content)
|
199
|
+
|
200
|
+
```
|
201
|
+
|
202
|
+
Create/Update Agent Profile
|
203
|
+
|
204
|
+
```ruby
|
205
|
+
# Parameters can be passed for create_agent_profile are: remote_lrs, profile_id, agent_object, profile_content
|
206
|
+
|
207
|
+
agent_details = Xapi.create_agent(agent_type: "Agent", email: 'email', name: 'name')
|
208
|
+
|
209
|
+
profile_content = { "objectType" => "Agent", "name" => "name", "avatar" => "avatar image url", "age" => "age", "roles" => ["role1", "rol2"], "teams" => ["team name"] }
|
210
|
+
|
211
|
+
Xapi.create_agent_profile(remote_lrs: remote_lrs, profile_id: "user profile", agent_object: agent_details, profile_content: profile_content)
|
212
|
+
|
213
|
+
Xapi.update _agent_profile(remote_lrs: remote_lrs, profile_id: "user profile", agent_object: agent_details, profile_content: profile_content)
|
214
|
+
|
215
|
+
```
|
216
|
+
|
217
|
+
## Get the Profiles from LRS
|
218
|
+
|
219
|
+
Get Activity Profile
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
# Parameters can be passed for get_activity_profile are: remote_lrs, profile_id, activity_object
|
223
|
+
|
224
|
+
activity_object = Xapi.create_activity(id: 'http://some.leranactivity.com/topics/1', name: 'title', type: 'http://activitystrea.ms/schema/1.0/task' )
|
225
|
+
|
226
|
+
Xapi.get_activity_profile(remote_lrs: remote_lrs, profile_id: "topic profile", activity_object: activity_object)
|
227
|
+
```
|
228
|
+
|
229
|
+
Get Multiple Activity Profiles for given Activity
|
230
|
+
|
231
|
+
```ruby
|
232
|
+
# Parameters can be passed for get_activity_profile are: remote_lrs, profile_id, activity_object
|
233
|
+
|
234
|
+
activity_object = Xapi.create_activity(id: 'http://some.leranactivity.com/topics/1', name: 'title', type: 'http://activitystrea.ms/schema/1.0/task' )
|
235
|
+
|
236
|
+
Xapi.get_activity_profile(remote_lrs: remote_lrs, profile_id: ["profile1", "profile2"], activity_object: activity_object)
|
237
|
+
```
|
238
|
+
|
239
|
+
Get Agent Profile
|
240
|
+
|
241
|
+
```ruby
|
242
|
+
# Parameters can be passed for get_agent_profile are: remote_lrs, profile_id, agent_object
|
243
|
+
|
244
|
+
agent_details = Xapi.create_agent(agent_type: "Agent", email: 'email', name: 'name')
|
245
|
+
|
246
|
+
Xapi.get_agent_profile(remote_lrs: remote_lrs, profile_id: "agent profile", agent_object: agent_details)
|
247
|
+
|
248
|
+
```
|
249
|
+
|
250
|
+
Get Multiple Agent Profiles for given agent
|
251
|
+
|
252
|
+
```ruby
|
253
|
+
# Parameters can be passed for get_agent_profile are: remote_lrs, profile_id, agent_object
|
254
|
+
|
255
|
+
agent_details = Xapi.create_agent(agent_type: "Agent", email: 'email', name: 'name')
|
256
|
+
|
257
|
+
Xapi.get_agent_profile(remote_lrs: remote_lrs, profile_id: ["profile1", "profile2"], agent_object: agent_details)
|
258
|
+
|
259
|
+
```
|
260
|
+
|
261
|
+
## Analytics related to Team and its Team members related to Assessment
|
262
|
+
|
263
|
+
Get Team and its members Average scores
|
264
|
+
|
265
|
+
```ruby
|
266
|
+
# Parameters can be passed for it: verb_id, activity_id, activity_type, team_name
|
267
|
+
|
268
|
+
team_analytics_query = Xapi.create_team_analytics_query(verb_id: "http://id.tincanapi.com/verb/rated", activity_type: "http://activitystrea.ms/schema/1.0/task", team_name: "Digital Learning" )
|
269
|
+
|
270
|
+
analytics_response = Xapi.get_analytics_by_query(remote_lrs: remote_lrs, team_analytics_query: team_analytics_query)
|
271
|
+
|
272
|
+
```
|
273
|
+
|
274
|
+
Get Team and its members Average scores, Activity frequency For given activity
|
275
|
+
|
276
|
+
```ruby
|
277
|
+
# Parameters can be passed for it: verb_id, activity_id, activity_type, team_name
|
278
|
+
|
279
|
+
team_analytics_query = Xapi.create_team_analytics_query(verb_id: "http://id.tincanapi.com/verb/rated", activity_type: "http://activitystrea.ms/schema/1.0/task", team_name: "Digital Learning", activity_id: "http://some.leranactivity.com/activities/1" )
|
280
|
+
|
281
|
+
analytics_response = Xapi.get_analytics_by_query(remote_lrs: remote_lrs, team_analytics_query: team_analytics_query)
|
282
|
+
|
283
|
+
```
|
284
|
+
|
285
|
+
Get Agent or Team member related all activities along with agent and its team average scores
|
286
|
+
|
287
|
+
```ruby
|
288
|
+
# Parameters can be passed for it: verb_id, agent_email, activity_type, team_name
|
289
|
+
|
290
|
+
team_analytics_query = Xapi.create_team_analytics_query(verb_id: "http://id.tincanapi.com/verb/rated", activity_type: "http://activitystrea.ms/schema/1.0/task", team_name: "Digital Learning", agent_email: "123@test.com" )
|
291
|
+
|
292
|
+
analytics_response = Xapi.get_analytics_by_query(remote_lrs: remote_lrs, team_analytics_query: team_analytics_query)
|
293
|
+
|
294
|
+
```
|
295
|
+
|
296
|
+
For more API calls check out the Xapi Module Class methods
|
297
|
+
|
298
|
+
For more API calls check out the Xapi::RemoteLRS class
|
299
|
+
|