@tblabs/storage 5.6.0 → 5.7.0

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.
@@ -0,0 +1,5 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ import { dir } from "./Types/dir";
3
+ export declare class CreateDatabaseCommand extends Message {
4
+ constructor(Database: dir);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class CreateDatabaseCommand extends Message {
3
+ constructor(Database) {
4
+ super("CreateDatabase", { Database });
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ import { dir } from "./Types/dir";
3
+ export declare class DeleteDatabaseCommand extends Message {
4
+ constructor(Database: dir);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class DeleteDatabaseCommand extends Message {
3
+ constructor(Database) {
4
+ super("DeleteDatabase", { Database });
5
+ }
6
+ }
@@ -38,6 +38,9 @@ export interface IStorageUserPrivileges {
38
38
  ListDatasets: boolean;
39
39
  ListUsers: boolean;
40
40
  GetLogs: boolean;
41
+ ListDatabases: boolean;
42
+ CreateDatabase: boolean;
43
+ DeleteDatabase: boolean;
41
44
  GetUser: boolean;
42
45
  UpdateUser: boolean;
43
46
  AddUser: boolean;
@@ -0,0 +1,4 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export declare class ListDatabasesQuery extends Message {
3
+ constructor();
4
+ }
@@ -0,0 +1,6 @@
1
+ import { Message } from "./MessageBus/Message";
2
+ export class ListDatabasesQuery extends Message {
3
+ constructor() {
4
+ super("ListDatabases", {});
5
+ }
6
+ }
@@ -1,6 +1,4 @@
1
- import { dir } from "../Types/dir";
2
1
  export interface MessageBody {
3
- Database: dir;
4
2
  [key: string]: any;
5
3
  }
6
4
  export declare class Message {
@@ -54,4 +54,12 @@ export declare class OnlineStorage {
54
54
  Move(fileId: string, sourceDataset: Dataset<any>, targetDataset: Dataset<any>): Promise<void>;
55
55
  GetLogsList(): Promise<string[]>;
56
56
  GetLog(id: string): Promise<string>;
57
+ ListDatabases(): Promise<DatabaseInfo[]>;
58
+ CreateDatabase(databaseDir: string): Promise<void>;
59
+ DeleteDatabase(databaseDir: string): Promise<void>;
60
+ }
61
+ export interface DatabaseInfo {
62
+ Dir: string;
63
+ DatasetsCount: number;
64
+ UsersCount: number;
57
65
  }
package/OnlineStorage.js CHANGED
@@ -6,7 +6,6 @@ import { Dataset } from "./Dataset";
6
6
  import { MoveFileCommand } from "./Messages/MoveFileCommand";
7
7
  import { LoginUserQuery } from "./Messages/LoginUserQuery";
8
8
  import { ListUsersQuery } from "./Messages/ListUsersQuery";
9
- import { ListDatasetsQuery } from "./Messages/ListDatabasesQuery";
10
9
  import { UpdateUserCommand } from "./Messages/UpdateUserCommand";
11
10
  import { AddUserCommand } from "./Messages/AddUserCommand";
12
11
  import { DeleteUserCommand } from "./Messages/DeleteUserCommand";
@@ -14,6 +13,10 @@ import { GetUserQuery } from "./Messages/GetUserQuery";
14
13
  import { USER_PRIVILEGES_NAMES } from "./IStorageUserPrivileges";
15
14
  import { GetLogQuery } from "./Messages/GetLogQuery";
16
15
  import { ListLogsIdsQuery } from "./Messages/GetLogsListQuery";
16
+ import { ListDatabasesQuery } from "./ListDatabasesQuery";
17
+ import { CreateDatabaseCommand } from "./CreateDatabaseCommand";
18
+ import { ListDatasetsQuery } from "./Messages/ListDatabasesQuery";
19
+ import { DeleteDatabaseCommand } from "./DeleteDatabaseCommand";
17
20
  export class OnlineStorage {
18
21
  server;
19
22
  database;
@@ -246,4 +249,45 @@ export class OnlineStorage {
246
249
  }
247
250
  return result.Result;
248
251
  }
252
+ /*
253
+ Search() USAGE:
254
+
255
+ datasetId = storage.Search(fileId)
256
+ file = dataset.GetOne(fileId)
257
+
258
+ ;/ to jest bardziej problematyczne niż myślałem.....
259
+ bo gdzieś przecież trzeba konwersji typu dokonać a sam search odbywa się na całej bazie
260
+ */
261
+ // public async Search<T extends object>(fileId: string): Promise<Dataset<T>>
262
+ // {
263
+ // this.Log(`Searching for "${fileId}" in entire database...`);
264
+ // const result = await this._bus.SendMessage(new SearchQuery(this.DatabaseDir, fileId));
265
+ // if (!result.IsSuccess)
266
+ // {
267
+ // throw new Error(`Could not find "${fileId}": ${result.ErrorMessage}`);
268
+ // }
269
+ // const datasetName = result.Result.Dataset;
270
+ // const dataset = this.GetDataset<T>(datasetName, converter); ?????????
271
+ // this.Log(`"${fileId}" found in "${dataset} dataset".`);
272
+ // return result.Result;
273
+ // }
274
+ async ListDatabases() {
275
+ const result = await this._bus.SendMessage(new ListDatabasesQuery());
276
+ if (!result.IsSuccess) {
277
+ throw new Error(`Could not list databases: ${result.ErrorMessage}`);
278
+ }
279
+ return result.Result;
280
+ }
281
+ async CreateDatabase(databaseDir) {
282
+ const result = await this._bus.SendMessage(new CreateDatabaseCommand(databaseDir));
283
+ if (!result.IsSuccess) {
284
+ throw new Error(`Could not create database: ${result.ErrorMessage}`);
285
+ }
286
+ }
287
+ async DeleteDatabase(databaseDir) {
288
+ const result = await this._bus.SendMessage(new DeleteDatabaseCommand(databaseDir));
289
+ if (!result.IsSuccess) {
290
+ throw new Error(`Could not delete database: ${result.ErrorMessage}`);
291
+ }
292
+ }
249
293
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tblabs/storage",
3
- "version": "5.6.0",
3
+ "version": "5.7.0",
4
4
  "description": "online storage module with auth",
5
5
  "license": "beerware",
6
6
  "main": "index.js",
Binary file
Binary file