mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-21 01:41:31 +00:00
Initial Move from Azure DevOps to GitHub
This commit is contained in:
96
src/NotebookWorkspaceManager/NotebookWorkspaceManager.ts
Normal file
96
src/NotebookWorkspaceManager/NotebookWorkspaceManager.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
import * as ViewModels from "../Contracts/ViewModels";
|
||||
import { ArmApiVersions } from "../Common/Constants";
|
||||
import { IResourceProviderClient, IResourceProviderClientFactory } from "../ResourceProvider/IResourceProviderClient";
|
||||
import { Logger } from "../Common/Logger";
|
||||
import {
|
||||
NotebookWorkspace,
|
||||
NotebookWorkspaceConnectionInfo,
|
||||
NotebookWorkspaceFeedResponse
|
||||
} from "../Contracts/DataModels";
|
||||
import { ResourceProviderClientFactory } from "../ResourceProvider/ResourceProviderClientFactory";
|
||||
|
||||
export class NotebookWorkspaceManager implements ViewModels.NotebookWorkspaceManager {
|
||||
private resourceProviderClientFactory: IResourceProviderClientFactory<any>;
|
||||
|
||||
constructor(private _armEndpoint: string) {
|
||||
this.resourceProviderClientFactory = new ResourceProviderClientFactory(this._armEndpoint);
|
||||
}
|
||||
|
||||
public async getNotebookWorkspacesAsync(cosmosdbResourceId: string): Promise<NotebookWorkspace[]> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces`;
|
||||
try {
|
||||
const response = (await this.rpClient(uri).getAsync(
|
||||
uri,
|
||||
ArmApiVersions.documentDB
|
||||
)) as NotebookWorkspaceFeedResponse;
|
||||
return response && response.value;
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/getNotebookWorkspacesAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
public async getNotebookWorkspaceAsync(
|
||||
cosmosdbResourceId: string,
|
||||
notebookWorkspaceId: string
|
||||
): Promise<NotebookWorkspace> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces/${notebookWorkspaceId}`;
|
||||
try {
|
||||
return (await this.rpClient(uri).getAsync(uri, ArmApiVersions.documentDB)) as NotebookWorkspace;
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/getNotebookWorkspaceAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
public async createNotebookWorkspaceAsync(cosmosdbResourceId: string, notebookWorkspaceId: string): Promise<void> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces/${notebookWorkspaceId}`;
|
||||
try {
|
||||
await this.rpClient(uri).putAsync(uri, ArmApiVersions.documentDB, { name: notebookWorkspaceId });
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/createNotebookWorkspaceAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
public async deleteNotebookWorkspaceAsync(cosmosdbResourceId: string, notebookWorkspaceId: string): Promise<void> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces/${notebookWorkspaceId}`;
|
||||
try {
|
||||
await this.rpClient(uri).deleteAsync(uri, ArmApiVersions.documentDB);
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/deleteNotebookWorkspaceAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
public async getNotebookConnectionInfoAsync(
|
||||
cosmosdbResourceId: string,
|
||||
notebookWorkspaceId: string
|
||||
): Promise<NotebookWorkspaceConnectionInfo> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces/${notebookWorkspaceId}/listConnectionInfo`;
|
||||
try {
|
||||
return await this.rpClient<NotebookWorkspaceConnectionInfo>(uri).postAsync(
|
||||
uri,
|
||||
ArmApiVersions.documentDB,
|
||||
undefined
|
||||
);
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/getNotebookConnectionInfoAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
public async startNotebookWorkspaceAsync(cosmosdbResourceId: string, notebookWorkspaceId: string): Promise<void> {
|
||||
const uri = `${cosmosdbResourceId}/notebookWorkspaces/${notebookWorkspaceId}/start`;
|
||||
try {
|
||||
return await this.rpClient(uri).postAsync(uri, ArmApiVersions.documentDB, undefined);
|
||||
} catch (error) {
|
||||
Logger.logError(error, "NotebookWorkspaceManager/startNotebookWorkspaceAsync");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
private rpClient<TResource>(uri: string): IResourceProviderClient<TResource> {
|
||||
return this.resourceProviderClientFactory.getOrCreate(uri);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user