@things-factory/operato-board 6.0.0-alpha.1 → 6.0.0-alpha.11
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/client/board-list/board-tile-list.js +6 -0
- package/client/bootstrap.js +9 -0
- package/client/pages/board-list-page.js +24 -21
- package/client/route.js +0 -8
- package/client/viewparts/board-info.js +4 -6
- package/client/viewparts/group-info.js +6 -0
- package/client/viewparts/play-group-info.js +6 -0
- package/config/license-for-viewer.json +11 -9
- package/config/license.json +6 -4
- package/dist-server/service/board-favorite/board-favorite-query.js +1 -1
- package/dist-server/service/board-favorite/board-favorite-query.js.map +1 -1
- package/dist-server/service/board-secret/board-resolver.js +2 -2
- package/dist-server/service/board-secret/board-resolver.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +31 -31
- package/server/service/board-favorite/board-favorite-query.ts +1 -1
- package/server/service/board-secret/board-resolver.ts +2 -2
- package/things-factory.config.js +0 -8
- package/client/pages/headroom-test-page.js +0 -207
- package/client/pages/sticky-test-page.js +0 -225
- package/config.development.js +0 -26
- package/config.production.js +0 -5
|
@@ -88,6 +88,12 @@ export default class BoardTileList extends LitElement {
|
|
|
88
88
|
-o-transition: opacity 0.8s;
|
|
89
89
|
transition: opacity 0.8s;
|
|
90
90
|
}
|
|
91
|
+
|
|
92
|
+
@media screen and (max-width: 800px), screen and (max-height: 600px) {
|
|
93
|
+
board-creation-card {
|
|
94
|
+
display: none;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
91
97
|
`
|
|
92
98
|
]
|
|
93
99
|
}
|
package/client/bootstrap.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import '@things-factory/notification'
|
|
2
|
+
import '@things-factory/board-ui'
|
|
2
3
|
import './viewparts/menu-tools'
|
|
3
4
|
import './apptools/favorite-tool'
|
|
4
5
|
import '@operato/help/ox-help-panel.js'
|
|
@@ -158,4 +159,12 @@ export default function bootstrap() {
|
|
|
158
159
|
template: html` <notification-setting-let></notification-setting-let> `
|
|
159
160
|
}
|
|
160
161
|
})
|
|
162
|
+
|
|
163
|
+
store.dispatch({
|
|
164
|
+
type: ADD_SETTING,
|
|
165
|
+
setting: {
|
|
166
|
+
seq: 21,
|
|
167
|
+
template: html` <board-view-setting-let></board-view-setting-let> `
|
|
168
|
+
}
|
|
169
|
+
})
|
|
161
170
|
}
|
|
@@ -327,8 +327,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
327
327
|
|
|
328
328
|
async onCreateGroup(group) {
|
|
329
329
|
try {
|
|
330
|
-
await createGroup(group)
|
|
331
|
-
this._notify('info', i18next.t('text.group created', { group: group.name }))
|
|
330
|
+
const data = await createGroup(group)
|
|
331
|
+
data && this._notify('info', i18next.t('text.group created', { group: group.name }))
|
|
332
332
|
} catch (ex) {
|
|
333
333
|
this._notify('error', ex, ex)
|
|
334
334
|
}
|
|
@@ -338,8 +338,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
338
338
|
|
|
339
339
|
async onUpdateGroup(group) {
|
|
340
340
|
try {
|
|
341
|
-
await updateGroup(group)
|
|
342
|
-
this._notify('info', i18next.t('text.group updated', { group: group.name }))
|
|
341
|
+
const data = await updateGroup(group)
|
|
342
|
+
data && this._notify('info', i18next.t('text.group updated', { group: group.name }))
|
|
343
343
|
} catch (ex) {
|
|
344
344
|
this._notify('error', ex, ex)
|
|
345
345
|
}
|
|
@@ -349,8 +349,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
349
349
|
|
|
350
350
|
async onDeleteGroup(group) {
|
|
351
351
|
try {
|
|
352
|
-
await deleteGroup(group.id)
|
|
353
|
-
this._notify('info', i18next.t('text.group deleted', { group: group.name }))
|
|
352
|
+
const data = await deleteGroup(group.id)
|
|
353
|
+
data && this._notify('info', i18next.t('text.group deleted', { group: group.name }))
|
|
354
354
|
} catch (ex) {
|
|
355
355
|
this._notify('error', ex, ex)
|
|
356
356
|
}
|
|
@@ -367,9 +367,9 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
369
|
|
|
370
|
-
await createBoard(board)
|
|
370
|
+
const data = await createBoard(board)
|
|
371
371
|
|
|
372
|
-
this._notify('info', i18next.t('text.board created', { board: board.name }))
|
|
372
|
+
data && this._notify('info', i18next.t('text.board created', { board: board.name }))
|
|
373
373
|
} catch (ex) {
|
|
374
374
|
this._notify('error', ex, ex)
|
|
375
375
|
}
|
|
@@ -379,8 +379,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
379
379
|
|
|
380
380
|
async onUpdateBoard(board) {
|
|
381
381
|
try {
|
|
382
|
-
await updateBoard(board)
|
|
383
|
-
this._notify('info', i18next.t('text.board updated', { board: board.name }))
|
|
382
|
+
const data = await updateBoard(board)
|
|
383
|
+
data && this._notify('info', i18next.t('text.board updated', { board: board.name }))
|
|
384
384
|
} catch (ex) {
|
|
385
385
|
this._notify('error', ex, ex)
|
|
386
386
|
}
|
|
@@ -390,8 +390,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
390
390
|
|
|
391
391
|
async onDeleteBoard(board) {
|
|
392
392
|
try {
|
|
393
|
-
await deleteBoard(board.id)
|
|
394
|
-
this._notify('info', i18next.t('text.board deleted', { board: board.name }))
|
|
393
|
+
const data = await deleteBoard(board.id)
|
|
394
|
+
data && this._notify('info', i18next.t('text.board deleted', { board: board.name }))
|
|
395
395
|
} catch (ex) {
|
|
396
396
|
this._notify('error', ex, ex)
|
|
397
397
|
}
|
|
@@ -401,7 +401,7 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
401
401
|
|
|
402
402
|
async onJoinPlayGroup({ board, playGroup }) {
|
|
403
403
|
try {
|
|
404
|
-
await client.mutate({
|
|
404
|
+
const { data } = await client.mutate({
|
|
405
405
|
mutation: gql`
|
|
406
406
|
mutation JoinPlayGroup($id: String!, $boardIds: [String!]!) {
|
|
407
407
|
joinPlayGroup(id: $id, boardIds: $boardIds) {
|
|
@@ -415,7 +415,8 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
415
415
|
}
|
|
416
416
|
})
|
|
417
417
|
|
|
418
|
-
|
|
418
|
+
data &&
|
|
419
|
+
this._notify('info', i18next.t('text.joined into play-group', { board: board.name, playGroup: playGroup.name }))
|
|
419
420
|
} catch (ex) {
|
|
420
421
|
this._notify('error', ex, ex)
|
|
421
422
|
}
|
|
@@ -423,7 +424,7 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
423
424
|
|
|
424
425
|
async onLeavePlayGroup({ board, playGroup }) {
|
|
425
426
|
try {
|
|
426
|
-
await client.mutate({
|
|
427
|
+
const { data } = await client.mutate({
|
|
427
428
|
mutation: gql`
|
|
428
429
|
mutation ($id: String!, $boardIds: [String!]!) {
|
|
429
430
|
leavePlayGroup(id: $id, boardIds: $boardIds) {
|
|
@@ -437,14 +438,15 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
437
438
|
}
|
|
438
439
|
})
|
|
439
440
|
|
|
440
|
-
|
|
441
|
+
data &&
|
|
442
|
+
this._notify('info', i18next.t('text.leaved from play-group', { board: board.name, playGroup: playGroup.name }))
|
|
441
443
|
} catch (ex) {
|
|
442
444
|
this._notify('error', ex, ex)
|
|
443
445
|
}
|
|
444
446
|
}
|
|
445
447
|
|
|
446
448
|
async refreshFavorites() {
|
|
447
|
-
const
|
|
449
|
+
const { data } = await client.query({
|
|
448
450
|
query: gql`
|
|
449
451
|
query {
|
|
450
452
|
myFavorites {
|
|
@@ -455,10 +457,11 @@ class BoardListPage extends localize(i18next)(connect(store)(InfiniteScrollable(
|
|
|
455
457
|
`
|
|
456
458
|
})
|
|
457
459
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
460
|
+
data &&
|
|
461
|
+
store.dispatch({
|
|
462
|
+
type: UPDATE_FAVORITES,
|
|
463
|
+
favorites: data.myFavorites.map(favorite => favorite.routing)
|
|
464
|
+
})
|
|
462
465
|
}
|
|
463
466
|
|
|
464
467
|
_notify(level, message, ex) {
|
package/client/route.js
CHANGED
|
@@ -42,13 +42,5 @@ export default function route(page) {
|
|
|
42
42
|
case 'scenario-list':
|
|
43
43
|
import('./pages/scenario-list-page')
|
|
44
44
|
return page
|
|
45
|
-
|
|
46
|
-
case 'headroom-test':
|
|
47
|
-
import('./pages/headroom-test-page')
|
|
48
|
-
return page
|
|
49
|
-
|
|
50
|
-
case 'sticky-test':
|
|
51
|
-
import('./pages/sticky-test-page')
|
|
52
|
-
return page
|
|
53
45
|
}
|
|
54
46
|
}
|
|
@@ -183,16 +183,14 @@ export class BoardInfo extends LitElement {
|
|
|
183
183
|
</select>
|
|
184
184
|
<label>${i18next.t('label.creator')}</label>
|
|
185
185
|
<span>
|
|
186
|
-
<mwc-icon>person</mwc-icon> ${board.creator && board.creator.name
|
|
187
|
-
|
|
188
|
-
).toLocaleString()}
|
|
186
|
+
<mwc-icon>person</mwc-icon> ${(board.creator && board.creator.name) || 'anonymous'}
|
|
187
|
+
<mwc-icon>schedule</mwc-icon> ${new Date(Number(board.createdAt)).toLocaleString()}
|
|
189
188
|
</span>
|
|
190
189
|
|
|
191
190
|
<label>${i18next.t('label.updater')}</label>
|
|
192
191
|
<span>
|
|
193
|
-
<mwc-icon>person</mwc-icon> ${board.updater && board.updater.name
|
|
194
|
-
|
|
195
|
-
).toLocaleString()}
|
|
192
|
+
<mwc-icon>person</mwc-icon> ${(board.updater && board.updater.name) || 'anonymouse'}
|
|
193
|
+
<mwc-icon>schedule</mwc-icon> ${new Date(Number(board.updatedAt)).toLocaleString()}
|
|
196
194
|
</span>
|
|
197
195
|
|
|
198
196
|
<div buttons>
|
|
@@ -198,6 +198,12 @@ export class GroupInfo extends LitElement {
|
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
firstUpdated() {
|
|
202
|
+
setTimeout(() => {
|
|
203
|
+
;(this.renderRoot.querySelector('input[type=text]') as any).focus()
|
|
204
|
+
}, 100)
|
|
205
|
+
}
|
|
206
|
+
|
|
201
207
|
async refresh() {
|
|
202
208
|
if (!this.groupId) {
|
|
203
209
|
/* model이 없으므로, 기본 모델을 제공함. */
|
|
@@ -200,6 +200,12 @@ export class PlayGroupInfo extends LitElement {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
firstUpdated() {
|
|
204
|
+
setTimeout(() => {
|
|
205
|
+
;(this.renderRoot.querySelector('input[type=text]') as any).focus()
|
|
206
|
+
}, 100)
|
|
207
|
+
}
|
|
208
|
+
|
|
203
209
|
async refresh() {
|
|
204
210
|
if (!this.playGroupId) {
|
|
205
211
|
/* model이 없으므로, 기본 모델을 제공함. */
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
2
|
+
"Product": "Operato Board",
|
|
3
|
+
"License Type": "Evaluation",
|
|
4
|
+
"Purchase Date": "2022.10.18",
|
|
5
|
+
"Expiration Date": "2023.01.18",
|
|
6
|
+
"Host Address": "UNLIMITED",
|
|
7
|
+
"Max Target Count": 0,
|
|
8
|
+
"Max Domain Count": 0,
|
|
9
|
+
"Permissions For Board Usage": "Viewer",
|
|
10
|
+
"Permissions For Tailor Tool": "",
|
|
11
|
+
"Key": "5eyJQcm9kdWN0IjoiT3BlcmF0byBCb2FyZCIsIkxpY2Vuc2UgVHlwZSI6IkV2YWx1YXRpb24iLCJQdXJjaGFzZSBEYXRlIjoiMjAyMi4xMC4xOCIsIkV4cGlyYXRpb24gRGF0ZSI6IjIwMjMuMDEuMTgiLCJIb3N0IEFkZHJlc3MiOiJVTkxJTUlURUQiLCJNYXggVGFyZ2V0IENvdW50IjowLCJNYXggRG9tYWluIENvdW50IjowLCJQZXJtaXNzaW9ucyBGb3IgQm9hcmQgVXNhZ2UiOiJWaWV3ZXIiLCJQZXJtaXNzaW9ucyBGb3IgVGFpbG9yIFRvb2wiOiIiLCJLZXkiOiJBeGdxR0F4Tk13b0NLUm94S3dFQVNSZ3VJRDRGREM0NURWa3FIZ0FFSWhnYUppWlRJd29XUWc4dkhnd01FaGNHREJvRUZob1dKaFlqQ2d3RUR3b0VPQlk0R2c4QUJEUUlLQ1lsTVFnSkdEd0hHaTRSRlRNcUhBa3FGZ3NyQVFCSkh3a2hTeHNJUUE4aUl6Z1hFeFVmRWlzQ0dSUUpHZ3BMRHdraUJ3MFNPQVlRR1NJeEdoWW1GaU1KR1VrYkNTY01JaVFuRkJVbUFRZ29KaVVwQ2k0VUFoOGNMZ0lWS0NJTEFRVWJDQ1VBSlRZWUNoWWNGQXdJRkIwMUd3Z1dGUjRUR3hFSVJ4WWFIRXNPTHg0NUppVWVGUUlwTXpFckFRQlhJQjRZSUE4SkRRSWRKek1UQ1NrRUZDc2tJVllJQ2kwQ0h3a0ZEaU1qSWhBSUtoNFRFeEVoV2dzS0tVY0ZHRElpRFJNakJoRS9Md2NSQkI1SEZna1VPZzR2SHdBZ1NTSUtBU2tTTGhvUkpra2dIaGdqRGdrcUN3NDRIaGtCS1M4VUVSQXRKd291R1RrU0dpNEhEU2N6R0JrWUZoVVNOd2hKSFFnWk93SVFOeXc9In0=81098"
|
|
12
|
+
}
|
package/config/license.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"Product": "Operato Board",
|
|
2
3
|
"License Type": "Evaluation",
|
|
3
|
-
"Purchase Date": "2022.
|
|
4
|
-
"Expiration Date": "
|
|
4
|
+
"Purchase Date": "2022.10.18",
|
|
5
|
+
"Expiration Date": "2023.01.18",
|
|
5
6
|
"Host Address": "UNLIMITED",
|
|
6
7
|
"Max Target Count": 0,
|
|
7
8
|
"Max Domain Count": 0,
|
|
8
9
|
"Permissions For Board Usage": "Viewer, Modeller",
|
|
9
|
-
"
|
|
10
|
-
|
|
10
|
+
"Permissions For Tailor Tool": "",
|
|
11
|
+
"Key": "5eyJQcm9kdWN0IjoiT3BlcmF0byBCb2FyZCIsIkxpY2Vuc2UgVHlwZSI6IkV2YWx1YXRpb24iLCJQdXJjaGFzZSBEYXRlIjoiMjAyMi4xMC4xOCIsIkV4cGlyYXRpb24gRGF0ZSI6IjIwMjMuMDEuMTgiLCJIb3N0IEFkZHJlc3MiOiJVTkxJTUlURUQiLCJNYXggVGFyZ2V0IENvdW50IjowLCJNYXggRG9tYWluIENvdW50IjowLCJQZXJtaXNzaW9ucyBGb3IgQm9hcmQgVXNhZ2UiOiJWaWV3ZXIsIE1vZGVsbGVyIiwiUGVybWlzc2lvbnMgRm9yIFRhaWxvciBUb29sIjoiIiwiS2V5IjoiQXhncUdBeE5Nd29DS1JveEt3RUFTUmd1SUQ0RkRDNDVEVmtxSGdBRUloZ2FKaVpUSXdvV1FnOHZIZ3dNRWhjR0RCb0VGaG9XSmhZakNnd0VEd29FT0JZNEdnOEFCRFFJS0NZbE1RZ0pHRHdIR2k0UkZUTXFIQWtxRmdzckFRQkpId2toU3hzSVFBOGlJemdYRXhVZkVpc0NHUlFKR2dwTER3a2lCdzBTT0FZUUdTSXhHaFltRmlNSkdVa2JDU2NNSWlRbkZCVW1BUWdvSmlVcENpNFVBaDhjTGdJVktDSUxBUVViQ0NVQUpUWVlDaFljRkF3SUZCMDFHd2dXRlI0VEd4RUlSeFlhSEVzT0x4NDVKaVVlRlFJcE16RXJBUUJYSUI0WUlBOEpEUUlkSnpNVENTa0VGQ3NrSVZZSUNpMENId2tGRGlNakloQUlLaDRURXhFaFdnc0tLVWNGR0RJaURSTWpCaEUvTHdjUkJCNUhGZ2tVT2c0dkh3QWdTU0lLQVNrU0xob1JKbE1qSERGSURob2VDZzBuRmhnWk93OElIeUlaV1FvS0Nrd0ZMd2dORFU0ZkJoQS9MeGdySXgxSUN3b1dTQVVJTWhRTkVqTVNHVHdIQ0NzRlB4MD0ifQ==85748"
|
|
12
|
+
}
|
|
@@ -33,7 +33,7 @@ let BoardFavoriteQuery = class BoardFavoriteQuery {
|
|
|
33
33
|
'Board.thumbnail as thumbnail',
|
|
34
34
|
'Favorite.id as favoriteId'
|
|
35
35
|
])
|
|
36
|
-
.andWhere('Favorite.
|
|
36
|
+
.andWhere('Favorite.user = :userId', {
|
|
37
37
|
userId: user.id
|
|
38
38
|
});
|
|
39
39
|
const items = await qb.getRawMany();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-favorite-query.js","sourceRoot":"","sources":["../../../server/service/board-favorite/board-favorite-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAyD;AAEzD,iEAAqD;AACrD,6CAA4C;AAC5C,uDAAmD;AACnD,iDAA4E;AAE5E,+DAAwE;AAExE,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAGpC,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAE7B,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAS,OAAwB;QAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE9B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,qBAAK,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9D,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,QAAQ,aAAa,EAAE;YACrB,KAAK,UAAU;gBACb,aAAa,GAAG,8CAA8C,CAAA;gBAC9D,MAAK;YACP,KAAK,QAAQ,CAAC;YACd;gBACE,aAAa,GAAG,6BAA6B,CAAA;SAChD;QAED,IAAI,EAAE,GAAG,YAAY;aAClB,SAAS,CAAC,mBAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;aAC9C,MAAM,CAAC;YACN,gBAAgB;YAChB,oBAAoB;YACpB,kCAAkC;YAClC,8BAA8B;YAC9B,2BAA2B;SAC5B,CAAC;aACD,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"board-favorite-query.js","sourceRoot":"","sources":["../../../server/service/board-favorite/board-favorite-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAyD;AAEzD,iEAAqD;AACrD,6CAA4C;AAC5C,uDAAmD;AACnD,iDAA4E;AAE5E,+DAAwE;AAExE,MAAM,SAAS,GAAG,YAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAA;AAGpC,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAE7B,KAAK,CAAC,cAAc,CAAS,MAAiB,EAAS,OAAwB;QAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE9B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAC,qBAAK,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9D,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,QAAQ,aAAa,EAAE;YACrB,KAAK,UAAU;gBACb,aAAa,GAAG,8CAA8C,CAAA;gBAC9D,MAAK;YACP,KAAK,QAAQ,CAAC;YACd;gBACE,aAAa,GAAG,6BAA6B,CAAA;SAChD;QAED,IAAI,EAAE,GAAG,YAAY;aAClB,SAAS,CAAC,mBAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;aAC9C,MAAM,CAAC;YACN,gBAAgB;YAChB,oBAAoB;YACpB,kCAAkC;YAClC,8BAA8B;YAC9B,2BAA2B;SAC5B,CAAC;aACD,QAAQ,CAAC,yBAAyB,EAAE;YACnC,MAAM,EAAE,IAAI,CAAC,EAAE;SAChB,CAAC,CAAA;QAEJ,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,UAAU,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;QAEjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAlCC;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,uCAAiB,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IACnE,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;wDAiC7C;AAnCU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,mCAAa,CAAC;GACX,kBAAkB,CAoC9B;AApCY,gDAAkB","sourcesContent":["import { Args, Ctx, Query, Resolver } from 'type-graphql'\n\nimport { Board } from '@things-factory/board-service'\nimport { config } from '@things-factory/env'\nimport { Favorite } from '@things-factory/fav-base'\nimport { buildQuery, getRepository, ListParam } from '@things-factory/shell'\n\nimport { BoardFavorite, BoardFavoriteList } from './board-favorite-type'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Resolver(BoardFavorite)\nexport class BoardFavoriteQuery {\n @Query(returns => BoardFavoriteList, { description: 'To fetch multiple BoardFavorites' })\n async favoriteBoards(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BoardFavoriteList> {\n const { user } = context.state\n\n const queryBuilder = getRepository(Board).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n var joinStatement = ''\n switch (DATABASE_TYPE) {\n case 'postgres':\n joinStatement = 'CAST(Board.id as VARCHAR) = Favorite.routing'\n break\n case 'sqlite':\n default:\n joinStatement = 'Board.id = Favorite.routing'\n }\n\n var qb = queryBuilder\n .innerJoin(Favorite, 'Favorite', joinStatement)\n .select([\n 'Board.id as id',\n 'Board.name as name',\n 'Board.description as description',\n 'Board.thumbnail as thumbnail',\n 'Favorite.id as favoriteId'\n ])\n .andWhere('Favorite.user = :userId', {\n userId: user.id\n })\n\n const items = await qb.getRawMany()\n const total = await qb.getCount()\n\n return { items, total }\n }\n}\n"]}
|
|
@@ -34,7 +34,7 @@ let BoardResolver = class BoardResolver {
|
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
36
|
var domainSecret = await (0, shell_1.getRepository)(domain_secret_1.DomainSecret).findOne({
|
|
37
|
-
where: { domain: domain }
|
|
37
|
+
where: { domain: { id: domain.id } }
|
|
38
38
|
});
|
|
39
39
|
// 2. if there's no domainSecret then create it
|
|
40
40
|
if (!domainSecret) {
|
|
@@ -49,7 +49,7 @@ let BoardResolver = class BoardResolver {
|
|
|
49
49
|
else {
|
|
50
50
|
var domainRepo = (0, shell_1.getRepository)(domain_secret_1.DomainSecret);
|
|
51
51
|
var domainSecret = await domainRepo.findOne({
|
|
52
|
-
where: { domain: domain }
|
|
52
|
+
where: { domain: { id: domain.id } }
|
|
53
53
|
});
|
|
54
54
|
if (domainSecret) {
|
|
55
55
|
var hash = (0, operato_license_checker_1.doSomething)({ secId: domainSecret.id, id: domain.id });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-resolver.js","sourceRoot":"","sources":["../../../server/service/board-secret/board-resolver.ts"],"names":[],"mappings":";;;;AAAA,+CAAwD;AAExD,iEAAqD;AACrD,qFAAiG;AACjG,iDAAqD;AAErD,8DAAyD;AACzD,kEAA6D;AAC7D,iDAA4C;AAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAGhC,IAAa,aAAa,GAA1B,MAAa,aAAa;IAExB,gBAAgB,CAAQ,OAAwB;QAC9C,OAAO,CAAC,IAAA,uCAAa,EAAC,6BAA6B,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3G,CAAC;IAGD,KAAK,CAAC,KAAK,CAAY,EAAU,EAAS,OAAwB;QAChE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,IAAI,KAAK,GAAG,MAAM,IAAA,qBAAa,EAAC,qBAAK,CAAC,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QACF,IAAI,MAAM,EAAE;YACV,sDAAsD;YACtD,IAAI,KAAK,GACP,CAAC,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;iBAC/B,OAAO,CAAC,kBAAkB,EAAE;iBAC5B,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,4BAAY,EAAE,QAAQ,CAAC;iBAC5B,KAAK,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;iBAChD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;YAEpB,IAAI,CAAC,IAAA,qCAAW,EAAC,KAAK,CAAC,EAAE;gBACvB,MAAM,IAAI,4BAAY,CAAC;oBACrB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,4BAAY,CAAC,WAAW,CAAC,UAAU,CAAC;iBAC1D,CAAC,CAAA;aACH;iBAAM;gBACL,IAAI,YAAY,GAAiB,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,OAAO,CAAC;oBACzE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"board-resolver.js","sourceRoot":"","sources":["../../../server/service/board-secret/board-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Query, Resolver } from 'type-graphql'\n\nimport { Board } from '@things-factory/board-service'\nimport { checkTarget, doSomething, getPermission } from '@things-factory/operato-license-checker'\nimport { getRepository } from '@things-factory/shell'\n\nimport { LicenseError } from '../../errors/license-error'\nimport { DomainSecret } from '../domain-secret/domain-secret'\nimport { BoardSecret } from './board-secret'\n\nconst crypto = require('crypto')\n\n@Resolver(Board)\nexport class BoardResolver {\n @Query(returns => [String], { description: 'Board Usage Permissions' })\n boardPermissions(@Ctx() context: ResolverContext): string[] {\n return (getPermission('Permissions For Board Usage') || 'Modeller, Viewer').split(',').map(p => p.trim())\n }\n\n @Query(returns => Board, { description: 'To fetch a board' })\n async board(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Board> {\n const { domain } = context.state\n\n var board = await getRepository(Board).findOne({\n where: { domain: { id: domain.id }, id }\n })\n if (domain) {\n // 1. check domainSecret is over limit quantity or not\n var count =\n (await getRepository(DomainSecret)\n .manager.createQueryBuilder()\n .select('board')\n .from(DomainSecret, 'secret')\n .where('id = :domainId', { domainId: domain.id })\n .getCount()) + 1\n\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n } else {\n var domainSecret: DomainSecret = await getRepository(DomainSecret).findOne({\n where: { domain: { id: domain.id } }\n })\n // 2. if there's no domainSecret then create it\n if (!domainSecret) {\n var domainSecret: DomainSecret = new DomainSecret()\n domainSecret.id = crypto.randomUUID()\n domainSecret.domain = domain\n var hash = doSomething({ secId: domainSecret.id, id: domain.id })\n domainSecret.secret = hash\n\n await getRepository(DomainSecret).save(domainSecret)\n // 3. if there's domainSecret then check it\n } else {\n var domainRepo = getRepository(DomainSecret)\n var domainSecret: DomainSecret = await domainRepo.findOne({\n where: { domain: { id: domain.id } }\n })\n if (domainSecret) {\n var hash = doSomething({ secId: domainSecret.id, id: domain.id })\n if (domainSecret.secret !== hash) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.VERIFICATION_ERROR)\n })\n }\n } else {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.VERIFICATION_ERROR)\n })\n }\n }\n }\n }\n if (board) {\n // 1. check boardSecret is over limit quantity or not\n var count =\n (await getRepository(BoardSecret)\n .manager.createQueryBuilder()\n .select('board')\n .from(BoardSecret, 'secret')\n .where('domain_id = :domainId', { domainId: domain.id })\n .getCount()) + 1\n\n if (!checkTarget(count)) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.OVER_LIMIT)\n })\n } else {\n var boardSecret: BoardSecret = await getRepository(BoardSecret).findOne({\n where: { targetId: id }\n })\n // 2. if there's no boardSecret then create it\n if (!boardSecret) {\n var boardSecret: BoardSecret = new BoardSecret()\n boardSecret.id = crypto.randomUUID()\n boardSecret.targetId = id\n boardSecret.targetType = 'board'\n boardSecret.domain = domain\n\n var hash = doSomething({ secId: boardSecret.id, id: id })\n boardSecret.secret = hash\n\n await getRepository(BoardSecret).save(boardSecret)\n // 3. if there's boardSecret then check it\n } else {\n var repogitory = getRepository(BoardSecret)\n var boardSecret: BoardSecret = await repogitory.findOne({\n where: { targetId: id }\n })\n if (boardSecret) {\n var hash = doSomething({ secId: boardSecret.id, id: id })\n if (boardSecret.secret !== hash) {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.VERIFICATION_ERROR)\n })\n }\n } else {\n throw new LicenseError({\n errorCode: context.t(LicenseError.ERROR_CODES.VERIFICATION_ERROR)\n })\n }\n }\n }\n }\n\n return board\n }\n}\n"]}
|