From ff7480badd9f5e1c272459a6793d8362d119787e Mon Sep 17 00:00:00 2001 From: Benjamin Mitton <benjamin.mitton@inria.fr> Date: Tue, 22 Feb 2022 09:29:01 +0100 Subject: [PATCH] test with interface type --- author.ts | 2 +- contents/assessment.ts | 26 +++++++++++++------------- contents/content.ts | 12 ++++++------ contents/html.ts | 2 +- contents/video.ts | 2 +- epoc.ts | 14 +++++++------- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/author.ts b/author.ts index 86c0270..410e266 100644 --- a/author.ts +++ b/author.ts @@ -1,6 +1,6 @@ import {html} from './types'; -export class Author { +export interface Author { name: string; image: string; description: html; diff --git a/contents/assessment.ts b/contents/assessment.ts index d0fee98..4a8215d 100644 --- a/contents/assessment.ts +++ b/contents/assessment.ts @@ -1,28 +1,28 @@ import {Content} from './content'; import {html, uid} from '../types'; -export class Assessment extends Content { +export interface Assessment extends Content { summary?: string; questions?: uid[]; time?: number; } -export class AssessmentRuntime extends Assessment { +export interface AssessmentRuntime extends Assessment { score?: number; scoreTotal?: number; chapterId?: uid; easierScoring?: boolean; } -export class SimpleQuestion extends Content { +export interface SimpleQuestion extends Content { question: uid; } -export class SimpleQuestionRuntime extends SimpleQuestion { +export interface SimpleQuestionRuntime extends SimpleQuestion { chapterId?: number; } -export class Question { +export interface Question { type: string; score: number; statement: string; @@ -33,36 +33,36 @@ export class Question { easierScoring?: boolean; } -export class DragAndDropquestion extends Question{ +export interface DragAndDropquestion extends Question{ correctResponse: Array<{label: string, values: string[]}>; } -export class MultipleChoiceQuestion extends Question { +export interface MultipleChoiceQuestion extends Question { correctResponse: Array<string>; } -export class SimpleChoiceQuestion extends Question { +export interface SimpleChoiceQuestion extends Question { correctResponse: string; } -export class Response { +export interface Response { label: string; value: string; explanation?: string; } -export class SwipeQuestion extends Question { +export interface SwipeQuestion extends Question { correctResponse: Array<{label: string, values: string[]}>; } -export class SwipeQuestionRuntime extends SwipeQuestion { +export interface SwipeQuestionRuntime extends SwipeQuestion { possibilities?: Array<string>; } -export class DropDownListQuestion extends Question { +export interface DropDownListQuestion extends Question { correctResponse: Array<{label: string, values: string[]}>; } -export class DropDownListQuestionRuntime extends DragAndDropquestion { +export interface DropDownListQuestionRuntime extends DragAndDropquestion { categories?: Array<string>; } \ No newline at end of file diff --git a/contents/content.ts b/contents/content.ts index 244d279..99abfe2 100644 --- a/contents/content.ts +++ b/contents/content.ts @@ -1,6 +1,6 @@ import {uid} from '../types'; -export abstract class Content { +export interface Content { id: uid; type: 'html' | 'assessment' | 'video' | 'simple-question' | 'choice'; title: string; @@ -9,25 +9,25 @@ export abstract class Content { conditionResolver?: ScoreResolver | ChoiceResolver; } -abstract class Resolver { + interface Resolver { conditionalFlag: ConditionalFlag[]; } -export class ScoreResolver extends Resolver{ +export interface ScoreResolver extends Resolver{ type: 'score'; } -export class ChoiceResolver extends Resolver{ +export interface ChoiceResolver extends Resolver{ type: 'choice'; choices: Choice[]; } -export class Choice { +export interface Choice { label: string; value: string; } -export class ConditionalFlag { +export interface ConditionalFlag { value: string; flags: uid[]; } diff --git a/contents/html.ts b/contents/html.ts index 616c197..6416011 100644 --- a/contents/html.ts +++ b/contents/html.ts @@ -1,6 +1,6 @@ import {Content} from './content'; import {html} from '../types'; -export class Html extends Content { +export interface Html extends Content { html: html; } diff --git a/contents/video.ts b/contents/video.ts index ea61a2a..692fdc5 100644 --- a/contents/video.ts +++ b/contents/video.ts @@ -1,7 +1,7 @@ import {Content} from './content'; import {html} from '../types'; -export class Video extends Content { +export interface Video extends Content { source: string; summary: html; subtitles: {label: string, lang: string, src: string}[]; diff --git a/epoc.ts b/epoc.ts index 927252b..7fb51e0 100644 --- a/epoc.ts +++ b/epoc.ts @@ -3,7 +3,7 @@ import {Content} from './contents/content'; import {html, uid} from './types'; import {Assessment, Question} from './contents/assessment'; -export class EpocMetadata { +export interface EpocMetadata { lastModif : string; version : string; id: string; @@ -19,13 +19,13 @@ export class EpocMetadata { download: string; } -export class EpocLibrary extends EpocMetadata { +export interface EpocLibrary extends EpocMetadata { downloading: boolean; downloaded: boolean; unzipping: boolean; } -export class Epoc extends EpocMetadata { +export interface Epoc extends EpocMetadata { certificateScore: number; parameters: Parameters; contents: Record<uid, Content>; @@ -33,11 +33,11 @@ export class Epoc extends EpocMetadata { questions: Record<uid, Question>; } -export class EpocRuntime extends Epoc { +export interface EpocRuntime extends Epoc { assessments: Assessment[]; } -export class Chapter { +export interface Chapter { id: uid; title: string; image?: string; @@ -45,7 +45,7 @@ export class Chapter { contents: uid[]; } -export class ChapterRuntime extends Chapter { +export interface ChapterRuntime extends Chapter { time: number; videoCount: number; assessmentCount: number; @@ -55,7 +55,7 @@ export class ChapterRuntime extends Chapter { assessmentDone: boolean; } -export class Parameters { +export interface Parameters { chapterParameter?: string; easierScoring?: boolean; openQuestionButton?: string; -- GitLab