MOBILE-4616 lti: Move lti constants to a file

main
Pau Ferrer Ocaña 2024-07-11 22:42:34 +02:00
parent 7e37b47fd4
commit df814d022c
7 changed files with 38 additions and 21 deletions

View File

@ -17,8 +17,9 @@ import { IonContent } from '@ionic/angular';
import { CoreCourseModuleMainActivityComponent } from '@features/course/classes/main-activity-component'; import { CoreCourseModuleMainActivityComponent } from '@features/course/classes/main-activity-component';
import { CoreCourseContentsPage } from '@features/course/pages/contents/contents'; import { CoreCourseContentsPage } from '@features/course/pages/contents/contents';
import { AddonModLti, AddonModLtiLti, AddonModLtiProvider } from '../../services/lti'; import { AddonModLti, AddonModLtiLti } from '../../services/lti';
import { AddonModLtiHelper } from '../../services/lti-helper'; import { AddonModLtiHelper } from '../../services/lti-helper';
import { ADDON_MOD_LTI_COMPONENT } from '../../constants';
/** /**
* Component that displays an LTI entry page. * Component that displays an LTI entry page.
@ -29,7 +30,7 @@ import { AddonModLtiHelper } from '../../services/lti-helper';
}) })
export class AddonModLtiIndexComponent extends CoreCourseModuleMainActivityComponent implements OnInit { export class AddonModLtiIndexComponent extends CoreCourseModuleMainActivityComponent implements OnInit {
component = AddonModLtiProvider.COMPONENT; component = ADDON_MOD_LTI_COMPONENT;
pluginName = 'lti'; pluginName = 'lti';
displayDescription = false; displayDescription = false;

View File

@ -0,0 +1,16 @@
// (C) Copyright 2015 Moodle Pty Ltd.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
export const ADDON_MOD_LTI_COMPONENT = 'mmaModLti';
export const ADDON_MOD_LTI_PAGE_NAME = 'mod_lti';

View File

@ -35,4 +35,4 @@ const routes: Routes = [
AddonModLtiIndexPage, AddonModLtiIndexPage,
], ],
}) })
export class AddonModLtiLazyModule {} export default class AddonModLtiLazyModule {}

View File

@ -20,14 +20,15 @@ import { CoreCourseModulePrefetchDelegate } from '@features/course/services/modu
import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module';
import { AddonModLtiIndexLinkHandler } from './services/handlers/index-link'; import { AddonModLtiIndexLinkHandler } from './services/handlers/index-link';
import { AddonModLtiListLinkHandler } from './services/handlers/list-link'; import { AddonModLtiListLinkHandler } from './services/handlers/list-link';
import { AddonModLtiModuleHandler, AddonModLtiModuleHandlerService } from './services/handlers/module'; import { AddonModLtiModuleHandler } from './services/handlers/module';
import { AddonModLtiPrefetchHandler } from './services/handlers/prefetch'; import { AddonModLtiPrefetchHandler } from './services/handlers/prefetch';
import { AddonModLtiHelper } from './services/lti-helper'; import { AddonModLtiHelper } from './services/lti-helper';
import { ADDON_MOD_LTI_PAGE_NAME } from './constants';
const routes: Routes = [ const routes: Routes = [
{ {
path: AddonModLtiModuleHandlerService.PAGE_NAME, path: ADDON_MOD_LTI_PAGE_NAME,
loadChildren: () => import('./lti-lazy.module').then(m => m.AddonModLtiLazyModule), loadChildren: () => import('./lti-lazy.module'),
}, },
]; ];

View File

@ -21,6 +21,7 @@ import { makeSingleton } from '@singletons';
import { AddonModLtiHelper } from '../lti-helper'; import { AddonModLtiHelper } from '../lti-helper';
import { CoreModuleHandlerBase } from '@features/course/classes/module-base-handler'; import { CoreModuleHandlerBase } from '@features/course/classes/module-base-handler';
import { CoreCourse } from '@features/course/services/course'; import { CoreCourse } from '@features/course/services/course';
import { ADDON_MOD_LTI_PAGE_NAME } from '../../constants';
/** /**
* Handler to support LTI modules. * Handler to support LTI modules.
@ -28,11 +29,9 @@ import { CoreCourse } from '@features/course/services/course';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class AddonModLtiModuleHandlerService extends CoreModuleHandlerBase implements CoreCourseModuleHandler { export class AddonModLtiModuleHandlerService extends CoreModuleHandlerBase implements CoreCourseModuleHandler {
static readonly PAGE_NAME = 'mod_lti';
name = 'AddonModLti'; name = 'AddonModLti';
modName = 'lti'; modName = 'lti';
protected pageName = AddonModLtiModuleHandlerService.PAGE_NAME; protected pageName = ADDON_MOD_LTI_PAGE_NAME;
supportedFeatures = { supportedFeatures = {
[CoreConstants.FEATURE_GROUPS]: false, [CoreConstants.FEATURE_GROUPS]: false,

View File

@ -17,7 +17,8 @@ import { Injectable } from '@angular/core';
import { CoreCourseActivityPrefetchHandlerBase } from '@features/course/classes/activity-prefetch-handler'; import { CoreCourseActivityPrefetchHandlerBase } from '@features/course/classes/activity-prefetch-handler';
import { CoreCourseAnyModuleData } from '@features/course/services/course'; import { CoreCourseAnyModuleData } from '@features/course/services/course';
import { makeSingleton } from '@singletons'; import { makeSingleton } from '@singletons';
import { AddonModLti, AddonModLtiProvider } from '../lti'; import { AddonModLti } from '../lti';
import { ADDON_MOD_LTI_COMPONENT } from '../../constants';
/** /**
* Handler to prefetch LTIs. LTIs cannot be prefetched, but the handler will be used to invalidate some data on course PTR. * Handler to prefetch LTIs. LTIs cannot be prefetched, but the handler will be used to invalidate some data on course PTR.
@ -27,7 +28,7 @@ export class AddonModLtiPrefetchHandlerService extends CoreCourseActivityPrefetc
name = 'AddonModLti'; name = 'AddonModLti';
modName = 'lti'; modName = 'lti';
component = AddonModLtiProvider.COMPONENT; component = ADDON_MOD_LTI_COMPONENT;
/** /**
* @inheritdoc * @inheritdoc

View File

@ -26,9 +26,7 @@ import { CoreUrlUtils } from '@services/utils/url';
import { CoreUtils } from '@services/utils/utils'; import { CoreUtils } from '@services/utils/utils';
import { CoreWSExternalFile, CoreWSExternalWarning } from '@services/ws'; import { CoreWSExternalFile, CoreWSExternalWarning } from '@services/ws';
import { makeSingleton, Translate } from '@singletons'; import { makeSingleton, Translate } from '@singletons';
import { ADDON_MOD_LTI_COMPONENT } from '../constants';
const ROOT_CACHE_KEY = 'mmaModLti:';
const LAUNCHER_FILE_NAME = 'lti_launcher.html';
/** /**
* Service that provides some features for LTI. * Service that provides some features for LTI.
@ -36,7 +34,8 @@ const LAUNCHER_FILE_NAME = 'lti_launcher.html';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class AddonModLtiProvider { export class AddonModLtiProvider {
static readonly COMPONENT = 'mmaModLti'; protected static readonly ROOT_CACHE_KEY = 'mmaModLti:';
protected static readonly LAUNCHER_FILE_NAME = 'lti_launcher.html';
/** /**
* Delete launcher. * Delete launcher.
@ -44,7 +43,7 @@ export class AddonModLtiProvider {
* @returns Promise resolved when the launcher file is deleted. * @returns Promise resolved when the launcher file is deleted.
*/ */
deleteLauncher(): Promise<void> { deleteLauncher(): Promise<void> {
return CoreFile.removeFile(LAUNCHER_FILE_NAME); return CoreFile.removeFile(AddonModLtiProvider.LAUNCHER_FILE_NAME);
} }
/** /**
@ -78,7 +77,7 @@ export class AddonModLtiProvider {
' }; \n' + ' }; \n' +
'</script> \n'; '</script> \n';
const entry = await CoreFile.writeFile(LAUNCHER_FILE_NAME, text); const entry = await CoreFile.writeFile(AddonModLtiProvider.LAUNCHER_FILE_NAME, text);
return CoreFile.getFileEntryURL(entry); return CoreFile.getFileEntryURL(entry);
} }
@ -98,7 +97,7 @@ export class AddonModLtiProvider {
const preSets: CoreSiteWSPreSets = { const preSets: CoreSiteWSPreSets = {
cacheKey: this.getLtiCacheKey(courseId), cacheKey: this.getLtiCacheKey(courseId),
updateFrequency: CoreSite.FREQUENCY_RARELY, updateFrequency: CoreSite.FREQUENCY_RARELY,
component: AddonModLtiProvider.COMPONENT, component: ADDON_MOD_LTI_COMPONENT,
...CoreSites.getReadingStrategyPreSets(options.readingStrategy), // Include reading strategy preSets. ...CoreSites.getReadingStrategyPreSets(options.readingStrategy), // Include reading strategy preSets.
}; };
@ -121,7 +120,7 @@ export class AddonModLtiProvider {
* @returns Cache key. * @returns Cache key.
*/ */
protected getLtiCacheKey(courseId: number): string { protected getLtiCacheKey(courseId: number): string {
return ROOT_CACHE_KEY + 'lti:' + courseId; return AddonModLtiProvider.ROOT_CACHE_KEY + 'lti:' + courseId;
} }
/** /**
@ -156,7 +155,7 @@ export class AddonModLtiProvider {
* @returns Cache key. * @returns Cache key.
*/ */
protected getLtiLaunchDataCacheKey(id: number): string { protected getLtiLaunchDataCacheKey(id: number): string {
return `${ROOT_CACHE_KEY}launch:${id}`; return `${AddonModLtiProvider.ROOT_CACHE_KEY}launch:${id}`;
} }
/** /**
@ -276,7 +275,7 @@ export class AddonModLtiProvider {
return CoreCourseLogHelper.log( return CoreCourseLogHelper.log(
'mod_lti_view_lti', 'mod_lti_view_lti',
params, params,
AddonModLtiProvider.COMPONENT, ADDON_MOD_LTI_COMPONENT,
id, id,
siteId, siteId,
); );