@things-factory/dataset 6.0.94 → 6.0.96

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/dataset",
3
- "version": "6.0.94",
3
+ "version": "6.0.96",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -36,19 +36,19 @@
36
36
  "@operato/shell": "^1.0.1",
37
37
  "@operato/styles": "^1.0.0",
38
38
  "@operato/utils": "^1.0.1",
39
- "@things-factory/auth-base": "^6.0.91",
40
- "@things-factory/aws-base": "^6.0.91",
41
- "@things-factory/board-service": "^6.0.91",
42
- "@things-factory/env": "^6.0.91",
43
- "@things-factory/organization": "^6.0.91",
44
- "@things-factory/scheduler-client": "^6.0.91",
45
- "@things-factory/shell": "^6.0.91",
46
- "@things-factory/work-shift": "^6.0.91",
47
- "@things-factory/worklist": "^6.0.91",
39
+ "@things-factory/auth-base": "^6.0.96",
40
+ "@things-factory/aws-base": "^6.0.96",
41
+ "@things-factory/board-service": "^6.0.96",
42
+ "@things-factory/env": "^6.0.96",
43
+ "@things-factory/organization": "^6.0.96",
44
+ "@things-factory/scheduler-client": "^6.0.96",
45
+ "@things-factory/shell": "^6.0.96",
46
+ "@things-factory/work-shift": "^6.0.96",
47
+ "@things-factory/worklist": "^6.0.96",
48
48
  "cron-parser": "^4.3.0",
49
49
  "moment-timezone": "^0.5.40",
50
50
  "simple-statistics": "^7.8.3",
51
51
  "statistics": "^3.3.0"
52
52
  },
53
- "gitHead": "87ca0acbca2c5b70a2b1961711b9078f2b824324"
53
+ "gitHead": "a9733ed107c937d32f5aa0af67daca582e93d0c6"
54
54
  }
@@ -1,6 +1,6 @@
1
1
  import moment from 'moment-timezone'
2
2
 
3
- import { Filter, getQueryBuilderFromListParams, getRepository } from '@things-factory/shell'
3
+ import { getQueryBuilderFromListParams, getRepository, ListParam, Sorting } from '@things-factory/shell'
4
4
 
5
5
  import { DataSet, DataSetSummaryPeriodType } from '../service/data-set/data-set'
6
6
 
@@ -57,8 +57,7 @@ export async function queryDataSummaryByPeriod(
57
57
  period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',
58
58
  dataSetName: string,
59
59
  dataKeys: string[] | null,
60
- filters: Filter[] | null,
61
- desc: boolean = false,
60
+ params: ListParam,
62
61
  context: ResolverContext
63
62
  ): Promise<DataSummary[]> {
64
63
  const { domain, user, tx } = context.state
@@ -159,25 +158,33 @@ export async function queryDataSummaryByPeriod(
159
158
  })
160
159
  .join(', ')
161
160
 
162
- const orderByPeriod: { sort: string; order: 'DESC' | 'ASC' }[] =
161
+ const desc = false
162
+ var orderByPeriod: Sorting[] =
163
163
  period == 'today'
164
164
  ? [
165
165
  {
166
- sort: 'summary.date',
167
- order: desc ? 'DESC' : 'ASC'
166
+ name: 'date',
167
+ desc
168
168
  },
169
169
  {
170
- sort: 'summary.period',
171
- order: desc ? 'DESC' : 'ASC'
170
+ name: 'period',
171
+ desc
172
172
  }
173
173
  ]
174
174
  : ['this year', '12 months'].includes(period)
175
- ? [{ sort: 'month', order: desc ? 'DESC' : 'ASC' }]
176
- : [{ sort: 'summary.date', order: desc ? 'DESC' : 'ASC' }]
175
+ ? [{ name: 'month', desc }]
176
+ : [{ name: 'date', desc }]
177
+
178
+ if (params?.sortings && params.sortings.length > 0) {
179
+ orderByPeriod = params.sortings
180
+ }
177
181
 
178
182
  var queryBuilder = getQueryBuilderFromListParams({
179
183
  repository: getRepository(DataSummary),
180
- params: { filters },
184
+ params: {
185
+ ...params,
186
+ sortings: []
187
+ },
181
188
  domain,
182
189
  alias: 'summary',
183
190
  searchables: searchables
@@ -203,8 +210,8 @@ export async function queryDataSummaryByPeriod(
203
210
  }
204
211
 
205
212
  orderByPeriod.map(orderBy => {
206
- const { sort, order } = orderBy
207
- queryBuilder.orderBy(sort, order)
213
+ const { name: sort, desc } = orderBy
214
+ queryBuilder.addOrderBy(sort, desc ? 'DESC' : 'ASC')
208
215
  })
209
216
 
210
217
  const items = await queryBuilder.getRawMany()
@@ -1,5 +1,5 @@
1
1
  import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
- import { Domain, Filter, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
2
+ import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { DataKeySet } from '../data-key-set/data-key-set'
5
5
  import { DataItem } from '../data-set/data-item-type'
@@ -40,11 +40,10 @@ export class DataSummaryQuery {
40
40
  @Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',
41
41
  @Arg('dataSetName') dataSetName: string,
42
42
  @Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,
43
- @Arg('filters', type => [Filter], { nullable: true }) filters: Filter[] | null,
44
- @Arg('desc', type => Boolean, { nullable: true }) desc: boolean,
43
+ @Args() params: ListParam,
45
44
  @Ctx() context: ResolverContext
46
45
  ): Promise<DynamicDataSummary[]> {
47
- return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, filters, desc, context)
46
+ return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)
48
47
  }
49
48
 
50
49
  @Directive('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)')
@@ -27,12 +27,6 @@ export class DataSummaryPatch {
27
27
 
28
28
  @ObjectType()
29
29
  export class DynamicDataSummary {
30
- @Field({ nullable: true })
31
- name?: string
32
-
33
- @Field({ nullable: true })
34
- description?: string
35
-
36
30
  @Field({ nullable: true })
37
31
  month?: string = ''
38
32