import { ServerConfig, IContentProvider, FileType, IContent, IGetParams } from "@nteract/core"; import { Observable } from "rxjs"; import { AjaxResponse } from "rxjs/ajax"; import { GitHubContentProvider } from "../../../GitHub/GitHubContentProvider"; import * as GitHubUtils from "../../../Utils/GitHubUtils"; export class NotebookContentProvider implements IContentProvider { constructor(private gitHubContentProvider: GitHubContentProvider, private jupyterContentProvider: IContentProvider) {} public remove(serverConfig: ServerConfig, path: string): Observable { return this.getContentProvider(path).remove(serverConfig, path); } public get(serverConfig: ServerConfig, path: string, params: Partial): Observable { return this.getContentProvider(path).get(serverConfig, path, params); } public update( serverConfig: ServerConfig, path: string, model: Partial> ): Observable { return this.getContentProvider(path).update(serverConfig, path, model); } public create( serverConfig: ServerConfig, path: string, model: Partial> & { type: FT } ): Observable { return this.getContentProvider(path).create(serverConfig, path, model); } public save( serverConfig: ServerConfig, path: string, model: Partial> ): Observable { return this.getContentProvider(path).save(serverConfig, path, model); } public listCheckpoints(serverConfig: ServerConfig, path: string): Observable { return this.getContentProvider(path).listCheckpoints(serverConfig, path); } public createCheckpoint(serverConfig: ServerConfig, path: string): Observable { return this.getContentProvider(path).createCheckpoint(serverConfig, path); } public deleteCheckpoint(serverConfig: ServerConfig, path: string, checkpointID: string): Observable { return this.getContentProvider(path).deleteCheckpoint(serverConfig, path, checkpointID); } public restoreFromCheckpoint( serverConfig: ServerConfig, path: string, checkpointID: string ): Observable { return this.getContentProvider(path).restoreFromCheckpoint(serverConfig, path, checkpointID); } private getContentProvider(path: string): IContentProvider { if (GitHubUtils.fromContentUri(path)) { return this.gitHubContentProvider; } return this.jupyterContentProvider; } }