@drax/dashboard-back 0.43.0 → 0.45.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.
- package/dist/factory/services/DashboardServiceFactory.js +16 -2
- package/dist/index.js +3 -2
- package/dist/repository/mongo/DashboardMongoRepository.js +12 -0
- package/dist/repository/sqlite/DashboardSqliteRepository.js +37 -0
- package/package.json +4 -4
- package/src/factory/services/DashboardServiceFactory.ts +21 -3
- package/src/index.ts +4 -2
- package/src/repository/{DashboardRepository.ts → mongo/DashboardMongoRepository.ts} +2 -2
- package/src/repository/sqlite/DashboardSqliteRepository.ts +52 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/factory/services/DashboardServiceFactory.d.ts.map +1 -1
- package/types/index.d.ts +3 -2
- package/types/index.d.ts.map +1 -1
- package/types/repository/mongo/DashboardMongoRepository.d.ts +9 -0
- package/types/repository/mongo/DashboardMongoRepository.d.ts.map +1 -0
- package/types/repository/sqlite/DashboardSqliteRepository.d.ts +20 -0
- package/types/repository/sqlite/DashboardSqliteRepository.d.ts.map +1 -0
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import DashboardMongoRepository from '../../repository/mongo/DashboardMongoRepository.js';
|
|
2
|
+
import DashboardSqliteRepository from '../../repository/sqlite/DashboardSqliteRepository.js';
|
|
2
3
|
import { DashboardService } from '../../services/DashboardService.js';
|
|
3
4
|
import { DashboardBaseSchema } from "../../schemas/DashboardSchema.js";
|
|
5
|
+
import { COMMON, CommonConfig, DraxConfig } from "@drax/common-back";
|
|
4
6
|
class DashboardServiceFactory {
|
|
5
7
|
static get instance() {
|
|
6
8
|
if (!DashboardServiceFactory.service) {
|
|
7
|
-
|
|
9
|
+
let repository;
|
|
10
|
+
switch (DraxConfig.getOrLoad(CommonConfig.DbEngine)) {
|
|
11
|
+
case COMMON.DB_ENGINES.MONGODB:
|
|
12
|
+
repository = new DashboardMongoRepository();
|
|
13
|
+
break;
|
|
14
|
+
case COMMON.DB_ENGINES.SQLITE:
|
|
15
|
+
const dbFile = DraxConfig.getOrLoad(CommonConfig.SqliteDbFile);
|
|
16
|
+
repository = new DashboardSqliteRepository(dbFile, false);
|
|
17
|
+
repository.build();
|
|
18
|
+
break;
|
|
19
|
+
default:
|
|
20
|
+
throw new Error("DraxConfig.DB_ENGINE must be one of " + Object.values(COMMON.DB_ENGINES).join(", "));
|
|
21
|
+
}
|
|
8
22
|
const schema = DashboardBaseSchema;
|
|
9
23
|
DashboardServiceFactory.service = new DashboardService(repository, schema);
|
|
10
24
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import DashboardPermissions from './permissions/DashboardPermissions.js';
|
|
2
2
|
import DashboardSchema from './schemas/DashboardSchema.js';
|
|
3
3
|
import DashboardModel from './models/DashboardModel.js';
|
|
4
|
-
import
|
|
4
|
+
import DashboardMongoRepository from './repository/mongo/DashboardMongoRepository.js';
|
|
5
|
+
import DashboardSqliteRepository from './repository/sqlite/DashboardSqliteRepository.js';
|
|
5
6
|
import DashboardService from './services/DashboardService.js';
|
|
6
7
|
import DashboardServiceFactory from './factory/services/DashboardServiceFactory.js';
|
|
7
8
|
import DashboardController from './controllers/DashboardController.js';
|
|
8
9
|
import DashboardRoutes from './routes/DashboardRoutes.js';
|
|
9
|
-
export { DashboardPermissions, DashboardSchema, DashboardModel,
|
|
10
|
+
export { DashboardPermissions, DashboardSchema, DashboardModel, DashboardMongoRepository, DashboardSqliteRepository, DashboardService, DashboardServiceFactory, DashboardController, DashboardRoutes };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractMongoRepository } from "@drax/crud-back";
|
|
2
|
+
import { DashboardModel } from "../../models/DashboardModel.js";
|
|
3
|
+
class DashboardMongoRepository extends AbstractMongoRepository {
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
this._model = DashboardModel;
|
|
7
|
+
this._searchFields = ['identifier', 'title'];
|
|
8
|
+
this._populateFields = [];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export default DashboardMongoRepository;
|
|
12
|
+
export { DashboardMongoRepository };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AbstractSqliteRepository } from "@drax/crud-back";
|
|
2
|
+
class DashboardSqliteRepository extends AbstractSqliteRepository {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.tableName = 'dashboards';
|
|
6
|
+
this.searchFields = [];
|
|
7
|
+
this.booleanFields = [];
|
|
8
|
+
this.identifier = '_id';
|
|
9
|
+
this.populateFields = [];
|
|
10
|
+
this.tableFields = [
|
|
11
|
+
{ name: "identifier", type: "TEXT", unique: true, primary: false },
|
|
12
|
+
{ name: "title", type: "TEXT", unique: true, primary: false },
|
|
13
|
+
{ name: "cards", type: "TEXT", unique: false, primary: false },
|
|
14
|
+
{ name: "createdAt", type: "TEXT", unique: false, primary: false },
|
|
15
|
+
{ name: "updatedAt", type: "TEXT", unique: false, primary: false },
|
|
16
|
+
];
|
|
17
|
+
this.verbose = false;
|
|
18
|
+
}
|
|
19
|
+
async prepareData(data) {
|
|
20
|
+
if (!data) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (data && data.cards) {
|
|
24
|
+
data.cards = JSON.stringify(data.cards);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async prepareItem(item) {
|
|
28
|
+
if (!item) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (item && item.cards) {
|
|
32
|
+
item.cards = JSON.parse(item.cards);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export default DashboardSqliteRepository;
|
|
37
|
+
export { DashboardSqliteRepository };
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.45.0",
|
|
7
7
|
"description": "Dahsboard backend",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"types": "types/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"author": "Cristian Incarnato & Drax Team",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@drax/crud-back": "^0.
|
|
26
|
-
"@drax/crud-share": "^0.
|
|
25
|
+
"@drax/crud-back": "^0.45.0",
|
|
26
|
+
"@drax/crud-share": "^0.45.0",
|
|
27
27
|
"mongoose": "^8.6.3",
|
|
28
28
|
"mongoose-paginate-v2": "^1.8.3"
|
|
29
29
|
},
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"tsc-alias": "^1.8.10",
|
|
40
40
|
"typescript": "^5.6.2"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "b05b1b2c982bad40a6d93496266c652f77749279"
|
|
43
43
|
}
|
|
@@ -1,14 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import type {IDashboardRepository} from '../../interfaces/IDashboardRepository'
|
|
2
|
+
import DashboardMongoRepository from '../../repository/mongo/DashboardMongoRepository.js'
|
|
3
|
+
import DashboardSqliteRepository from '../../repository/sqlite/DashboardSqliteRepository.js'
|
|
3
4
|
import {DashboardService} from '../../services/DashboardService.js'
|
|
4
5
|
import {DashboardBaseSchema} from "../../schemas/DashboardSchema.js";
|
|
6
|
+
import {COMMON, CommonConfig, DraxConfig} from "@drax/common-back";
|
|
7
|
+
|
|
5
8
|
|
|
6
9
|
class DashboardServiceFactory {
|
|
7
10
|
private static service: DashboardService;
|
|
8
11
|
|
|
9
12
|
public static get instance(): DashboardService {
|
|
10
13
|
if (!DashboardServiceFactory.service) {
|
|
11
|
-
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
let repository: IDashboardRepository
|
|
17
|
+
switch (DraxConfig.getOrLoad(CommonConfig.DbEngine)) {
|
|
18
|
+
case COMMON.DB_ENGINES.MONGODB:
|
|
19
|
+
repository = new DashboardMongoRepository()
|
|
20
|
+
break;
|
|
21
|
+
case COMMON.DB_ENGINES.SQLITE:
|
|
22
|
+
const dbFile = DraxConfig.getOrLoad(CommonConfig.SqliteDbFile)
|
|
23
|
+
repository = new DashboardSqliteRepository(dbFile, false)
|
|
24
|
+
repository.build()
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
throw new Error("DraxConfig.DB_ENGINE must be one of " + Object.values(COMMON.DB_ENGINES).join(", "));
|
|
28
|
+
}
|
|
29
|
+
|
|
12
30
|
const schema = DashboardBaseSchema;
|
|
13
31
|
DashboardServiceFactory.service = new DashboardService(repository, schema);
|
|
14
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import DashboardPermissions from './permissions/DashboardPermissions.js'
|
|
2
2
|
import DashboardSchema from './schemas/DashboardSchema.js'
|
|
3
3
|
import DashboardModel from './models/DashboardModel.js'
|
|
4
|
-
import
|
|
4
|
+
import DashboardMongoRepository from './repository/mongo/DashboardMongoRepository.js'
|
|
5
|
+
import DashboardSqliteRepository from './repository/sqlite/DashboardSqliteRepository.js'
|
|
5
6
|
import DashboardService from './services/DashboardService.js'
|
|
6
7
|
import DashboardServiceFactory from './factory/services/DashboardServiceFactory.js'
|
|
7
8
|
import DashboardController from './controllers/DashboardController.js'
|
|
@@ -16,7 +17,8 @@ export {
|
|
|
16
17
|
DashboardPermissions,
|
|
17
18
|
DashboardSchema,
|
|
18
19
|
DashboardModel,
|
|
19
|
-
|
|
20
|
+
DashboardMongoRepository,
|
|
21
|
+
DashboardSqliteRepository,
|
|
20
22
|
DashboardService,
|
|
21
23
|
DashboardServiceFactory,
|
|
22
24
|
DashboardController,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import {AbstractMongoRepository} from "@drax/crud-back";
|
|
3
|
-
import {DashboardModel} from "
|
|
4
|
-
import type {IDashboardRepository} from '
|
|
3
|
+
import {DashboardModel} from "../../models/DashboardModel.js";
|
|
4
|
+
import type {IDashboardRepository} from '../../interfaces/IDashboardRepository'
|
|
5
5
|
import type {IDashboard, IDashboardBase} from "@drax/dashboard-share";
|
|
6
6
|
|
|
7
7
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {IDashboardRepository} from '../../interfaces/IDashboardRepository'
|
|
2
|
+
import {IDashboard, IDashboardBase} from "@drax/dashboard-share";
|
|
3
|
+
import {
|
|
4
|
+
SqliteTableField,
|
|
5
|
+
} from "@drax/common-back";
|
|
6
|
+
import {AbstractSqliteRepository} from "@drax/crud-back";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DashboardSqliteRepository extends AbstractSqliteRepository<IDashboard,IDashboardBase, IDashboardBase> implements IDashboardRepository{
|
|
10
|
+
|
|
11
|
+
protected db: any;
|
|
12
|
+
protected tableName: string = 'dashboards';
|
|
13
|
+
protected dataBaseFile: string;
|
|
14
|
+
protected searchFields: string[] = [];
|
|
15
|
+
protected booleanFields: string[] = [];
|
|
16
|
+
protected identifier: string = '_id';
|
|
17
|
+
protected populateFields = []
|
|
18
|
+
protected tableFields: SqliteTableField[] = [
|
|
19
|
+
{name: "identifier", type: "TEXT", unique: true, primary: false},
|
|
20
|
+
{name: "title", type: "TEXT", unique: true, primary: false},
|
|
21
|
+
{name: "cards", type: "TEXT", unique: false, primary: false},
|
|
22
|
+
{name: "createdAt", type: "TEXT", unique: false, primary: false},
|
|
23
|
+
{name: "updatedAt", type: "TEXT", unique: false, primary: false},
|
|
24
|
+
]
|
|
25
|
+
protected verbose: boolean = false;
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
async prepareData(data: any) {
|
|
29
|
+
if (!data) {
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (data && data.cards) {
|
|
34
|
+
data.cards = JSON.stringify(data.cards)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async prepareItem(item: any) {
|
|
39
|
+
|
|
40
|
+
if (!item) {
|
|
41
|
+
return
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (item && item.cards) {
|
|
45
|
+
item.cards = JSON.parse(item.cards)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export default DashboardSqliteRepository
|
|
52
|
+
export {DashboardSqliteRepository}
|