@lilaquadrat/studio 10.0.0-beta.4 → 10.0.0-beta.6

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.
@@ -1,142 +1,167 @@
1
- import { Immutable, ControllerBase } from '../../main.js';
2
- export default class UniversalService extends Immutable {
3
- constructor(model) {
4
- super();
5
- this.limit = 30;
6
- this.search = ['name', 'id'];
7
- if (!model)
8
- throw new Error('UNIVERSAL_SERVICE_MODEL_MISSING');
9
- this.model = model;
10
- }
11
- single(stringOrObjectID, company, project, app, model, affectedStates) {
12
- const query = {
13
- company,
14
- project,
15
- app,
16
- model,
17
- };
18
- if (typeof stringOrObjectID === 'string' || typeof stringOrObjectID === 'number') {
19
- query.id = stringOrObjectID;
20
- }
21
- if (typeof stringOrObjectID === 'object') {
22
- query._id = stringOrObjectID;
23
- }
24
- if (affectedStates) {
25
- query.state = { $in: affectedStates };
26
- }
27
- return this.model.db.findOne(query);
28
- }
29
- existsById(id, company, project, app, model) {
30
- return this.model.db
31
- .countDocuments({
32
- id,
33
- company,
34
- project,
35
- app,
36
- model,
37
- })
38
- .then((found) => found > 0);
39
- }
40
- getByInternalId(_id, company, project, app, model, affectedStates) {
41
- return this.single(_id, company, project, app, model, affectedStates);
42
- }
43
- list(query, select, site, limit, model, sort, order) {
44
- let realSite = 0;
45
- let realSelect;
46
- let realSort = {};
47
- let all;
48
- /**
49
- * see comment from this function
50
- */
51
- if (site)
52
- realSite = site - 1;
53
- const skipLimit = ControllerBase.getLimit(realSite, limit, this.limit);
54
- if (select) {
55
- realSelect = { ...select };
56
- }
57
- else {
58
- realSelect = { history: 0 };
59
- }
60
- if (sort && order) {
61
- realSort[`${sort === 'updated' ? 'history.updated' : sort}`] = +order;
62
- }
63
- else {
64
- realSort = { _id: 1 };
65
- }
66
- return model.db
67
- .countDocuments(query)
68
- .then((count) => {
69
- all = count;
70
- return model.db
71
- .find(query, { projection: realSelect })
72
- .limit(skipLimit.limit)
73
- .skip(skipLimit.skip)
74
- .sort(realSort)
75
- .toArray();
76
- })
77
- .then((data) => ({ data, all, count: data.length }));
78
- }
79
- buildQuery(query, company, project, options) {
80
- const realQuery = { ...query };
81
- const orArray = [];
82
- let tags;
83
- let keepTags = false;
84
- let keepSearch = false;
85
- let keepSort = false;
86
- if (company)
87
- realQuery.company = company;
88
- if (project)
89
- realQuery.project = project;
90
- if (project === false)
91
- realQuery.project = { $exists: false };
92
- if (options) {
93
- if (options.keepTags)
94
- keepTags = true;
95
- if (options.keepSearch)
96
- keepSearch = true;
97
- if (options.keepSort)
98
- keepSort = true;
99
- }
100
- if (!keepSort) {
101
- delete realQuery.sort;
102
- delete realQuery.order;
103
- }
104
- if (query.available) {
105
- realQuery.available = query.available === 'true';
106
- }
107
- /**
108
- * make sure tags are an array
109
- */
110
- if (query.tags && !keepTags) {
111
- if (!Array.isArray(query.tags)) {
112
- tags = [query.tags];
113
- }
114
- else {
115
- tags = query.tags;
116
- }
117
- realQuery.tags = { $in: tags };
118
- }
119
- if (query.search && !keepSearch) {
120
- if (this.search.length > 1) {
121
- this.search.forEach((single) => {
122
- orArray.push({
123
- [single]: {
124
- $regex: query.search.toLowerCase().trim(),
125
- $options: 'i',
126
- },
127
- });
128
- });
129
- realQuery.$or = orArray;
130
- }
131
- else {
132
- realQuery[this.search[0]] = {
133
- $regex: query.search.toLowerCase().trim(),
134
- $options: 'i',
135
- };
136
- }
137
- delete realQuery.search;
138
- }
139
- return realQuery;
140
- }
141
- }
1
+ // import {
2
+ // Filter, WithId, Sort, SortDirection, ObjectId,
3
+ // } from 'mongodb';
4
+ // import { Immutable, Modelv2, ControllerBase } from '../../main.js';
5
+ // import { BasicData, Content, DatabaseQueryOptions, Universal } from '@lilaquadrat/interfaces';
6
+ // export default class UniversalService extends Immutable<Universal> {
7
+ // limit = 30;
8
+ // search = ['name', 'id'];
9
+ // constructor(model: Modelv2<Universal>) {
10
+ // super();
11
+ // if (!model) throw new Error('UNIVERSAL_SERVICE_MODEL_MISSING');
12
+ // this.model = model;
13
+ // }
14
+ // single(
15
+ // stringOrObjectID: BasicData<Content>['_id'] | string | number,
16
+ // company: string,
17
+ // project: string,
18
+ // app: string,
19
+ // model: string,
20
+ // affectedStates?: Content['state'][],
21
+ // ) {
22
+ // const query: Filter<Universal> = {
23
+ // company,
24
+ // project,
25
+ // app,
26
+ // model,
27
+ // };
28
+ // if (typeof stringOrObjectID === 'string' || typeof stringOrObjectID === 'number') {
29
+ // query.id = stringOrObjectID;
30
+ // }
31
+ // if (typeof stringOrObjectID === 'object') {
32
+ // query._id = stringOrObjectID;
33
+ // }
34
+ // if (affectedStates) {
35
+ // query.state = { $in: affectedStates };
36
+ // }
37
+ // return this.model.db.findOne(query);
38
+ // }
39
+ // existsById(
40
+ // id: string | number,
41
+ // company: string,
42
+ // project: string,
43
+ // app: string,
44
+ // model: string,
45
+ // ) {
46
+ // return this.model.db
47
+ // .countDocuments({
48
+ // id,
49
+ // company,
50
+ // project,
51
+ // app,
52
+ // model,
53
+ // })
54
+ // .then((found) => found > 0);
55
+ // }
56
+ // getByInternalId(
57
+ // _id: ObjectId,
58
+ // company: string,
59
+ // project: string,
60
+ // app: string,
61
+ // model: string,
62
+ // affectedStates?: Content['state'][],
63
+ // ) {
64
+ // return this.single(_id, company, project, app, model, affectedStates);
65
+ // }
66
+ // list(
67
+ // query: Filter<WithId<Universal>>,
68
+ // select: Record<string, number>,
69
+ // site: number,
70
+ // limit: number,
71
+ // model: Modelv2<Universal>,
72
+ // sort?: string,
73
+ // order?: number,
74
+ // ) {
75
+ // let realSite: number = 0;
76
+ // let realSelect: Record<keyof Universal, number>;
77
+ // let realSort: Record<string, SortDirection> = {};
78
+ // let all: number;
79
+ // /**
80
+ // * see comment from this function
81
+ // */
82
+ // if (site) realSite = site - 1;
83
+ // const skipLimit = ControllerBase.getLimit(realSite, limit, this.limit);
84
+ // if (select) {
85
+ // realSelect = { ...select };
86
+ // } else {
87
+ // realSelect = { history: 0 };
88
+ // }
89
+ // if (sort && order) {
90
+ // realSort[`${sort === 'updated' ? 'history.updated' : sort}`] = +order as SortDirection;
91
+ // } else {
92
+ // realSort = { _id: 1 };
93
+ // }
94
+ // return model.db
95
+ // .countDocuments(query as Filter<Universal>)
96
+ // .then((count: number) => {
97
+ // all = count;
98
+ // return model.db
99
+ // .find(query, { projection: realSelect })
100
+ // .limit(skipLimit.limit)
101
+ // .skip(skipLimit.skip)
102
+ // .sort(realSort)
103
+ // .toArray();
104
+ // })
105
+ // .then((data) => ({ data, all, count: data.length }));
106
+ // }
107
+ // buildQuery(
108
+ // query: Filter<WithId<Universal>>,
109
+ // company?: string,
110
+ // project?: string | boolean,
111
+ // options?: DatabaseQueryOptions,
112
+ // ) {
113
+ // const realQuery: Record<string, any> = { ...query };
114
+ // const orArray: Object[] = [];
115
+ // let tags: string[];
116
+ // let keepTags = false;
117
+ // let keepSearch = false;
118
+ // let keepSort = false;
119
+ // if (company) realQuery.company = company;
120
+ // if (project) realQuery.project = project;
121
+ // if (project === false) realQuery.project = { $exists: false };
122
+ // if (options) {
123
+ // if (options.keepTags) keepTags = true;
124
+ // if (options.keepSearch) keepSearch = true;
125
+ // if (options.keepSort) keepSort = true;
126
+ // }
127
+ // if (!keepSort) {
128
+ // delete realQuery.sort;
129
+ // delete realQuery.order;
130
+ // }
131
+ // if (query.available) {
132
+ // realQuery.available = query.available === 'true';
133
+ // }
134
+ // /**
135
+ // * make sure tags are an array
136
+ // */
137
+ // if (query.tags && !keepTags) {
138
+ // if (!Array.isArray(query.tags)) {
139
+ // tags = [query.tags];
140
+ // } else {
141
+ // tags = query.tags;
142
+ // }
143
+ // realQuery.tags = { $in: tags };
144
+ // }
145
+ // if (query.search && !keepSearch) {
146
+ // if (this.search.length > 1) {
147
+ // this.search.forEach((single: string) => {
148
+ // orArray.push({
149
+ // [single]: {
150
+ // $regex: query.search.toLowerCase().trim(),
151
+ // $options: 'i',
152
+ // },
153
+ // });
154
+ // });
155
+ // realQuery.$or = orArray;
156
+ // } else {
157
+ // realQuery[this.search[0]] = {
158
+ // $regex: query.search.toLowerCase().trim(),
159
+ // $options: 'i',
160
+ // };
161
+ // }
162
+ // delete realQuery.search;
163
+ // }
164
+ // return realQuery as Filter<WithId<Universal>>;
165
+ // }
166
+ // }
142
167
  //# sourceMappingURL=universal.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"universal.service.js","sourceRoot":"","sources":["../../../src/services/universal.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal.service.js","sourceRoot":"","sources":["../../../src/services/universal.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lilaquadrat/studio",
3
- "version": "10.0.0-beta.4",
3
+ "version": "10.0.0-beta.6",
4
4
  "description": "classes and tools for STUDIO",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -122,10 +122,6 @@
122
122
  "@lilaquadrat/interfaces": "^1.32.0",
123
123
  "@nats-io/jetstream": "^3.2.0",
124
124
  "@nats-io/transport-node": "^3.2.0",
125
- "@root/acme": "^3.1.0",
126
- "@root/csr": "^0.8.1",
127
- "@root/keypairs": "^0.10.0",
128
- "@root/pem": "^1.0.4",
129
125
  "ajv": "^8.8.2",
130
126
  "ajv-formats": "^2.1.0",
131
127
  "ajv-keywords": "^5.1.0",
@@ -1,114 +0,0 @@
1
- import { Router, Response } from 'express';
2
- import { Filter, MongoServerError, SortDirection, WithId, Document } from 'mongodb';
3
- import { Modelv2 } from '../../main.js';
4
- import ImmutableError from './errors/Immutable.error.js';
5
- import { DatabaseQuerySites, DatabaseQueryOptions, ListOfModels } from '@lilaquadrat/interfaces';
6
- import { ListCustomQueries } from '@lilaquadrat/interfaces';
7
- import InvalidIdError from './errors/InvalidId.error.js';
8
- import ForbiddenError from './errors/Forbidden.error.js';
9
- export default abstract class ControllerBase {
10
- logger: Console;
11
- router: Router;
12
- /**
13
- * max documents per call.
14
- * custom limit cant be higher than this
15
- *
16
- * @abstract
17
- * @type {number}
18
- * @memberof ControllerBase
19
- */
20
- limit: number;
21
- /**
22
- * defines which fields are included or excluded if nothing is emitet
23
- *
24
- * @type {string}
25
- * @memberof ControllerBase
26
- */
27
- selectDefault: any;
28
- /**
29
- * defines which keys are used for regex search
30
- * if more then one entry, it will be an $or
31
- *
32
- *
33
- * For example:
34
- *
35
- * ```ts
36
- * {$or: [{ $regex: key1, $options: 'i' }, { $regex: key2, $options: 'i' }]}
37
- * ```
38
- *
39
- * @type {string[]}
40
- * @memberof ControllerBase
41
- */
42
- search: string[];
43
- cleanErrors(errors: {
44
- [key: string]: any;
45
- }): {
46
- [key: string]: any;
47
- };
48
- handleError(error: MongoServerError | ImmutableError | InvalidIdError | ForbiddenError, res: Response): void;
49
- response(res: any, data: any, count?: number): void;
50
- static buildResponse<M>(data: ListOfModels<M>, site: number, limit: number, hardLimit?: number): {
51
- data: M[] | undefined;
52
- all: number | undefined;
53
- sites: DatabaseQuerySites;
54
- count: number | undefined;
55
- };
56
- static getLimit(site: number, limit: number, hardLimit?: number): {
57
- skip: number;
58
- limit: number;
59
- };
60
- static getRealLimit(limit: number, hardLimit?: number): number;
61
- getSort(sort?: string, order?: '1' | 0): {};
62
- /**
63
- *
64
- *
65
- * @param {number} site
66
- * @param {number} limit
67
- * @param {number} count all data count regardless of site
68
- * @param {number} current current count of documents
69
- * @returns {DatabaseQuerySites}
70
- * @memberof ControllerBase
71
- */
72
- static getSites(site: number, limit: number, count: number, current: number): DatabaseQuerySites;
73
- exec(): void;
74
- /**
75
- *
76
- *
77
- * @param {DatabaseQuery} query
78
- * @param {string} [company]
79
- * @param {string} [project]
80
- * @param {DatabaseQueryOptions} [options]
81
- * @returns
82
- * @memberof ControllerBase
83
- */
84
- buildQuery<M>(query: Filter<WithId<M>>, company?: string, project?: string | boolean, options?: DatabaseQueryOptions): Filter<WithId<M>>;
85
- /**
86
- *
87
- *
88
- * @param {DatabaseQuery} query
89
- * @param {string} select
90
- * @param {number} site start counting at 1 instead of zero. no site / zero will be the same as 1
91
- * @param {number} limit
92
- * @param {Model<Document>} model
93
- * @param {string} [sort]
94
- * @param {string} [order]
95
- * @returns
96
- * @memberof ControllerBase
97
- */
98
- list<M extends Document>(query: Filter<M>, select: Record<string, number>, site: number, limit: number, model: Modelv2<M>, sort?: string, order?: number): Promise<{
99
- data: WithId<M>[];
100
- all: number;
101
- count: number;
102
- }>;
103
- listCustomQuery<M extends Document>(queries: ListCustomQueries<M>, model: Modelv2<M>): Promise<{
104
- all: number;
105
- data: M[];
106
- count: number;
107
- }>;
108
- static getSkipLimitSort(site: number, limit: number, sort?: string, order?: number): {
109
- skip: number;
110
- limit: number;
111
- sort: Record<string, SortDirection>;
112
- };
113
- abstract routing(): void;
114
- }