@lti-tool/core 0.14.0 → 0.14.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.
- package/CHANGELOG.md +6 -0
- package/dist/services/ags.service.d.ts.map +1 -1
- package/dist/services/ags.service.js +4 -7
- package/dist/services/session.service.d.ts.map +1 -1
- package/dist/services/session.service.js +7 -2
- package/package.json +1 -1
- package/src/services/ags.service.ts +4 -7
- package/src/services/session.service.ts +7 -2
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ags.service.d.ts","sourceRoot":"","sources":["../../src/services/ags.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAGtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,UAAU;IASnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IAVhB;;;;;;OAMG;gBAEO,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,UAAU;IAG5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ags.service.d.ts","sourceRoot":"","sources":["../../src/services/ags.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACf,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAGtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,UAAU;IASnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IAVhB;;;;;;OAMG;gBAEO,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,UAAU;IAG5B;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkCjF;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAwBvD;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsB3D;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBzD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,cAAc,CAClB,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAuBpB;;;;;;;;;;;;;;;;;OAiBG;IACG,cAAc,CAClB,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAuBpB;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;YAqB9C,WAAW;YAeX,mBAAmB;CAalC"}
|
|
@@ -54,7 +54,8 @@ export class AGSService {
|
|
|
54
54
|
activityProgress: score.activityProgress,
|
|
55
55
|
gradingProgress: score.gradingProgress,
|
|
56
56
|
};
|
|
57
|
-
const
|
|
57
|
+
const agsScoreEndpoint = `${session.services.ags.lineitem}/scores`;
|
|
58
|
+
const response = await fetch(agsScoreEndpoint, {
|
|
58
59
|
method: 'POST',
|
|
59
60
|
headers: {
|
|
60
61
|
Authorization: `Bearer ${token}`,
|
|
@@ -84,12 +85,8 @@ export class AGSService {
|
|
|
84
85
|
throw new Error('AGS line item not available for this session');
|
|
85
86
|
}
|
|
86
87
|
const token = await this.getAGSToken(session, 'https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly');
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const lineItemUrl = new URL(session.services.ags.lineitem);
|
|
90
|
-
lineItemUrl.search = '';
|
|
91
|
-
const resultsUrl = `${lineItemUrl.toString()}/results`;
|
|
92
|
-
const response = await fetch(resultsUrl, {
|
|
88
|
+
const resultsEndpoint = `${session.services.ags.lineitem}/results`;
|
|
89
|
+
const response = await fetch(resultsEndpoint, {
|
|
93
90
|
method: 'GET',
|
|
94
91
|
headers: {
|
|
95
92
|
Authorization: `Bearer ${token}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../src/services/session.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;GAMG;AAEH,wBAAgB,aAAa,CAAC,eAAe,EAAE,eAAe,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../src/services/session.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;GAMG;AAEH,wBAAgB,aAAa,CAAC,eAAe,EAAE,eAAe,GAAG,UAAU,CA4G1E"}
|
|
@@ -20,9 +20,14 @@ export function createSession(lti13JwtPayload) {
|
|
|
20
20
|
const isAdmin = roles.some((role) => role.includes('Administrator'));
|
|
21
21
|
const services = {};
|
|
22
22
|
if (agsEndpoint) {
|
|
23
|
+
let lineItemUrl;
|
|
24
|
+
if (agsEndpoint.lineitem) {
|
|
25
|
+
const url = new URL(agsEndpoint.lineitem);
|
|
26
|
+
lineItemUrl = `${url.origin}${url.pathname}`; // quirk: moodle adds a url search param
|
|
27
|
+
}
|
|
23
28
|
services.ags = {
|
|
24
|
-
lineitem:
|
|
25
|
-
lineitems: agsEndpoint.lineitems,
|
|
29
|
+
lineitem: lineItemUrl,
|
|
30
|
+
lineitems: agsEndpoint.lineitems, // quirk: keep the moodle url search param
|
|
26
31
|
scopes: agsEndpoint.scope || [],
|
|
27
32
|
};
|
|
28
33
|
}
|
package/package.json
CHANGED
|
@@ -70,7 +70,8 @@ export class AGSService {
|
|
|
70
70
|
gradingProgress: score.gradingProgress,
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
const
|
|
73
|
+
const agsScoreEndpoint = `${session.services.ags.lineitem}/scores`;
|
|
74
|
+
const response = await fetch(agsScoreEndpoint, {
|
|
74
75
|
method: 'POST',
|
|
75
76
|
headers: {
|
|
76
77
|
Authorization: `Bearer ${token}`,
|
|
@@ -107,13 +108,9 @@ export class AGSService {
|
|
|
107
108
|
'https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly',
|
|
108
109
|
);
|
|
109
110
|
|
|
110
|
-
|
|
111
|
-
// we cannot include a search / query param
|
|
112
|
-
const lineItemUrl = new URL(session.services.ags.lineitem);
|
|
113
|
-
lineItemUrl.search = '';
|
|
114
|
-
const resultsUrl = `${lineItemUrl.toString()}/results`;
|
|
111
|
+
const resultsEndpoint = `${session.services.ags.lineitem}/results`;
|
|
115
112
|
|
|
116
|
-
const response = await fetch(
|
|
113
|
+
const response = await fetch(resultsEndpoint, {
|
|
117
114
|
method: 'GET',
|
|
118
115
|
headers: {
|
|
119
116
|
Authorization: `Bearer ${token}`,
|
|
@@ -31,9 +31,14 @@ export function createSession(lti13JwtPayload: LTI13JwtPayload): LTISession {
|
|
|
31
31
|
|
|
32
32
|
const services: Record<string, unknown> = {};
|
|
33
33
|
if (agsEndpoint) {
|
|
34
|
+
let lineItemUrl: string | undefined;
|
|
35
|
+
if (agsEndpoint.lineitem) {
|
|
36
|
+
const url = new URL(agsEndpoint.lineitem);
|
|
37
|
+
lineItemUrl = `${url.origin}${url.pathname}`; // quirk: moodle adds a url search param
|
|
38
|
+
}
|
|
34
39
|
services.ags = {
|
|
35
|
-
lineitem:
|
|
36
|
-
lineitems: agsEndpoint.lineitems,
|
|
40
|
+
lineitem: lineItemUrl,
|
|
41
|
+
lineitems: agsEndpoint.lineitems, // quirk: keep the moodle url search param
|
|
37
42
|
scopes: agsEndpoint.scope || [],
|
|
38
43
|
};
|
|
39
44
|
}
|