@things-factory/dataset 7.1.31 → 7.1.34
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-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/data-set/data-set-query.js +1 -3
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/server/service/data-set/data-set-query.ts +1 -3
|
@@ -68,9 +68,7 @@ let DataSetQuery = class DataSetQuery {
|
|
|
68
68
|
})
|
|
69
69
|
.andWhere('dataset.active = :active', { active: true })
|
|
70
70
|
.andWhere(new typeorm_1.Brackets(qb => {
|
|
71
|
-
qb.where('dataset.supervisoryRole IN (:...roles)'
|
|
72
|
-
roles
|
|
73
|
-
});
|
|
71
|
+
qb.where('dataset.supervisoryRole IN (:...roles)').orWhere('dataset.entryRole IN (:...roles)');
|
|
74
72
|
}))
|
|
75
73
|
.setParameter('roles', roles)
|
|
76
74
|
.getManyAndCount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-set-query.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, In } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Role, User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { ApprovalLineItem } from '@things-factory/organization'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { AssigneeItem } from '@things-factory/worklist'\nimport { Scenario } from '@things-factory/integration-base'\n\nimport { DataKeySet } from '../data-key-set/data-key-set'\nimport { DataSample } from '../data-sample/data-sample'\nimport { DataItem } from './data-item-type'\nimport { DataSet, DataSetState } from './data-set'\nimport { DataSetList } from './data-set-type'\n\nvar parser = require('cron-parser')\n\n@Resolver(DataSet)\nexport class DataSetQuery {\n // 데이터셋을 ID로 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSet, { description: 'To fetch a DataSet' })\n async dataSet(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSet> {\n const { domain } = context.state\n\n return await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n }\n\n // 데이터셋을 이름으로 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSet, { description: 'To fetch a DataSet by name' })\n async dataSetByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DataSet> {\n const { domain } = context.state\n\n return await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n // 여러 데이터셋을 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets' })\n async dataSets(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<DataSetList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description', 'tag', 'supervisoryRole']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n // 데이터 입력을 위한 데이터셋 조회\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets for data entry manually' })\n async dataSetsForEntry(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSetList> {\n var { domain, user } = context.state\n\n // 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = user.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description']\n })\n .andWhere('dataset.active = :active', { active: true })\n .andWhere(\n new Brackets(qb => {\n qb.where('dataset.supervisoryRole IN (:...roles)', { roles }).orWhere('dataset.entryRole IN (:...roles)', {\n roles\n })\n })\n )\n .setParameter('roles', roles)\n .getManyAndCount()\n\n return {\n items,\n total\n }\n }\n\n // 데이터 보고를 위한 데이터셋 조회\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets to see data report' })\n async dataSetsForReport(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSetList> {\n var { domain, user } = context.state\n\n // 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description']\n })\n .andWhere(`dataset.active = :active`, { active: true })\n .andWhere('dataset.supervisoryRole IN (:...roles)', { roles })\n .getManyAndCount()\n\n return { items, total }\n }\n\n // 데이터셋의 상태를 조회\n @FieldResolver(type => DataSetState)\n async status(@Root() dataSet: DataSet): Promise<DataSetState> {\n // 스케줄러 서비스에서 정보 가져오기\n return {\n id: '',\n scheduleId: '',\n state: '',\n startedAt: new Date(),\n nextSchedule: new Date()\n }\n }\n\n // 데이터셋의 데이터 항목을 조회\n @FieldResolver(type => [DataItem])\n async dataItems(@Root() dataSet: DataSet): Promise<DataItem[]> {\n if (dataSet.dataItems instanceof Array) {\n return dataSet.dataItems.filter(item => item.name)\n }\n\n return []\n }\n\n // 데이터셋의 entry 역할을 조회\n @FieldResolver(type => Role)\n async entryRole(@Root() dataSet: DataSet): Promise<Role> {\n return (\n dataSet.entryRole ||\n (dataSet.entryRoleId &&\n (await getRepository(Role).findOneBy({\n id: dataSet.entryRoleId\n })))\n )\n }\n\n // 데이터셋의 supervisory 역할을 조회\n @FieldResolver(type => Role, { description: 'Retrieves the supervisory role for the dataset' })\n async supervisoryRole(@Root() dataSet: DataSet): Promise<Role> {\n return (\n dataSet.supervisoryRole ||\n (dataSet.supervisoryRoleId &&\n (await getRepository(Role).findOneBy({\n id: dataSet.supervisoryRoleId\n })))\n )\n }\n\n @FieldResolver(type => [AssigneeItem], { description: 'Retrieves the assignee items for the dataset' })\n async assignees(@Root() dataSet: DataSet, @Ctx() context: ResolverContext): Promise<AssigneeItem[]> {\n const { domain, user } = context.state\n const { assignees } = dataSet\n\n if (!assignees || !(assignees instanceof Array)) {\n return null\n }\n\n var assigneeItemList = []\n\n for (let item of assignees) {\n // \"value\" deprecated. to be removed\n var { type, assignee, value } = item\n var id = assignee?.id || id\n\n switch (type) {\n case 'Employee':\n assignee = id && (await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Department':\n assignee = id && (await getRepository('Department').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Role':\n assignee = id && (await getRepository('Role').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Myself':\n assignee = user\n break\n case 'MyDepartment':\n case 'MySupervisor':\n break\n default:\n }\n\n id ? assigneeItemList.push({ type, assignee }) : assigneeItemList.push({ type })\n }\n\n return assigneeItemList\n }\n\n @FieldResolver(type => [ApprovalLineItem], { description: 'Retrieves the approval line items for the dataset' })\n async approvalLine(@Root() dataSet: DataSet, @Ctx() context: ResolverContext): Promise<ApprovalLineItem[]> {\n const { domain, user } = context.state\n const { reviewApprovalLine } = dataSet\n\n if (!reviewApprovalLine || !(reviewApprovalLine instanceof Array)) {\n return null\n }\n\n var approvalLineItems = []\n\n for (let item of reviewApprovalLine) {\n // \"value\" deprecated. to be removed\n var { type, approver, value } = item\n var id = approver?.id || value\n approver = null\n\n switch (type) {\n case 'Employee':\n approver = id && (await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Department':\n approver = id && (await getRepository('Department').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Role':\n approver = id && (await getRepository('Role').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Myself':\n approver = user\n break\n case 'MyDepartment':\n case 'MySupervisor':\n break\n default:\n }\n\n id ? approvalLineItems.push({ type, approver }) : approvalLineItems.push({ type })\n }\n\n return approvalLineItems\n }\n\n @FieldResolver(type => Board, { nullable: true, description: 'Retrieves the entry board for the dataset' })\n async entryBoard(@Root() dataSet: DataSet): Promise<Board> {\n if (dataSet.entryType == 'board' && dataSet.entryView) {\n return await getRepository(Board).findOneBy({ id: dataSet.entryView })\n }\n }\n\n @FieldResolver(type => Board, { nullable: true, description: 'Retrieves the monitor board for the dataset' })\n async monitorBoard(@Root() dataSet: DataSet): Promise<Board> {\n if (dataSet.monitorType == 'board' && dataSet.monitorView) {\n return await getRepository(Board).findOneBy({ id: dataSet.monitorView })\n }\n }\n\n @FieldResolver(type => DataKeySet, { nullable: true, description: 'Retrieves the data key set for the dataset' })\n async dataKeySet(@Root() dataSet: DataSet): Promise<DataKeySet> {\n return (\n dataSet.dataKeySet ||\n (dataSet.dataKeySetId &&\n (await getRepository(DataKeySet).findOneBy({\n id: dataSet.dataKeySetId\n })))\n )\n }\n\n @FieldResolver(type => Scenario, { description: 'Retrieves the normal scenario for the dataset.' })\n async normalScenario(@Root() dataSet: DataSet): Promise<Scenario> {\n return (\n dataSet.normalScenario ||\n (dataSet.normalScenarioId &&\n (await getRepository(Scenario).findOneBy({\n id: dataSet.normalScenarioId\n })))\n )\n }\n\n @FieldResolver(type => Scenario, { description: 'Retrieves the outlier scenario for the dataset.' })\n async outlierScenario(@Root() dataSet: DataSet): Promise<Scenario> {\n return (\n dataSet.outlierScenario ||\n (dataSet.outlierScenarioId &&\n (await getRepository(Scenario).findOneBy({\n id: dataSet.outlierScenarioId\n })))\n )\n }\n\n // 데이터셋의 도메인을 조회\n @FieldResolver(type => Domain)\n async domain(@Root() dataSet: DataSet): Promise<Domain> {\n return dataSet.domainId && (await getRepository(Domain).findOneBy({ id: dataSet.domainId }))\n }\n\n // 데이터셋의 업데이트한 사용자를 조회\n @FieldResolver(type => User)\n async updater(@Root() dataSet: DataSet): Promise<User> {\n return dataSet.updaterId && (await getRepository(User).findOneBy({ id: dataSet.updaterId }))\n }\n\n // 데이터셋의 생성자를 조회\n @FieldResolver(type => User)\n async creator(@Root() dataSet: DataSet): Promise<User> {\n return dataSet.creatorId && (await getRepository(User).findOneBy({ id: dataSet.creatorId }))\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the latest collection time for the dataset.' })\n async latestCollectedAt(@Root() dataSet: DataSet): Promise<Date> {\n const sample = await getRepository(DataSample).findOne({\n select: ['id', 'collectedAt'],\n where: { dataSet: { id: dataSet.id } },\n order: { collectedAt: 'DESC' }\n })\n\n return sample?.collectedAt\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the next schedule time for the dataset.' })\n async nextSchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, schedule, timezone } = dataSet\n\n if (!schedule) {\n return\n }\n\n var interval = parser.parseExpression(schedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.next().toDate()\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the previous schedule time for the dataset.' })\n async prevSchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, schedule, timezone } = dataSet\n\n if (!schedule) {\n return\n }\n\n var interval = parser.parseExpression(schedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.prev().toDate()\n }\n\n @FieldResolver(type => Date, {\n nullable: true,\n description: 'Retrieves the next summary schedule time for the dataset.'\n })\n async nextSummarySchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, summarySchedule, timezone } = dataSet\n\n if (!summarySchedule) {\n return\n }\n\n var interval = parser.parseExpression(summarySchedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.next().toDate()\n\n // FIXME: getSchedules 의 파라미터를 수정해야한다. scheduler 가 없거나 커넥션이 끊겨있어서 오래걸리는 문제는 어떻게 ?? 비동기로 처리한다. 어떻게???\n // client: {\n // application: Application,\n // group: `${domain.id}`,\n // type: 'data-set',\n // key: dataSet.id,\n // operation: 'summary'\n // }\n // const schedule = getSchedules('name', 'group', false)\n // return schedule.nextSchedule\n }\n\n @FieldResolver(type => String, { description: 'Retrieves the report template for the dataset.' })\n async reportTemplate(@Root() dataset: DataSet): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: dataset.domainId },\n refType: `${DataSet.name}-report-template`,\n refBy: dataset.id\n }\n })\n\n return attachment?.path\n }\n\n @FieldResolver(returns => Boolean, { description: 'Whether the user is a supervisor for this dataset' })\n async isSupervisor(@Root() dataset: DataSet, @Ctx() context: ResolverContext): Promise<boolean> {\n const { user, domain } = context.state\n\n const foundUser = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = foundUser.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n return roles.includes(dataset.supervisoryRoleId)\n }\n\n @FieldResolver(returns => Boolean, { description: 'Whether the user is allowed to enter data for this dataset' })\n async isEntryAllowed(@Root() dataset: DataSet, @Ctx() context: ResolverContext): Promise<boolean> {\n const { user, domain } = context.state\n\n const foundUser = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = foundUser.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n return roles.includes(dataset.entryRoleId)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"data-set-query.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, In } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { Role, User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { ApprovalLineItem } from '@things-factory/organization'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { AssigneeItem } from '@things-factory/worklist'\nimport { Scenario } from '@things-factory/integration-base'\n\nimport { DataKeySet } from '../data-key-set/data-key-set'\nimport { DataSample } from '../data-sample/data-sample'\nimport { DataItem } from './data-item-type'\nimport { DataSet, DataSetState } from './data-set'\nimport { DataSetList } from './data-set-type'\n\nvar parser = require('cron-parser')\n\n@Resolver(DataSet)\nexport class DataSetQuery {\n // 데이터셋을 ID로 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSet, { description: 'To fetch a DataSet' })\n async dataSet(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DataSet> {\n const { domain } = context.state\n\n return await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id }\n })\n }\n\n // 데이터셋을 이름으로 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSet, { description: 'To fetch a DataSet by name' })\n async dataSetByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DataSet> {\n const { domain } = context.state\n\n return await getRepository(DataSet).findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, name }\n })\n }\n\n // 여러 데이터셋을 조회\n @Directive('@privilege(category: \"data-set\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets' })\n async dataSets(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<DataSetList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description', 'tag', 'supervisoryRole']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n // 데이터 입력을 위한 데이터셋 조회\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets for data entry manually' })\n async dataSetsForEntry(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSetList> {\n var { domain, user } = context.state\n\n // 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = user.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description']\n })\n .andWhere('dataset.active = :active', { active: true })\n .andWhere(\n new Brackets(qb => {\n qb.where('dataset.supervisoryRole IN (:...roles)').orWhere('dataset.entryRole IN (:...roles)')\n })\n )\n .setParameter('roles', roles)\n .getManyAndCount()\n\n return {\n items,\n total\n }\n }\n\n // 데이터 보고를 위한 데이터셋 조회\n @Query(returns => DataSetList, { description: 'To fetch multiple DataSets to see data report' })\n async dataSetsForReport(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DataSetList> {\n var { domain, user } = context.state\n\n // 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)\n\n if (!roles.length) {\n return { items: [], total: 0 }\n }\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(DataSet),\n params,\n domain,\n alias: 'dataset',\n searchables: ['name', 'description']\n })\n .andWhere(`dataset.active = :active`, { active: true })\n .andWhere('dataset.supervisoryRole IN (:...roles)', { roles })\n .getManyAndCount()\n\n return { items, total }\n }\n\n // 데이터셋의 상태를 조회\n @FieldResolver(type => DataSetState)\n async status(@Root() dataSet: DataSet): Promise<DataSetState> {\n // 스케줄러 서비스에서 정보 가져오기\n return {\n id: '',\n scheduleId: '',\n state: '',\n startedAt: new Date(),\n nextSchedule: new Date()\n }\n }\n\n // 데이터셋의 데이터 항목을 조회\n @FieldResolver(type => [DataItem])\n async dataItems(@Root() dataSet: DataSet): Promise<DataItem[]> {\n if (dataSet.dataItems instanceof Array) {\n return dataSet.dataItems.filter(item => item.name)\n }\n\n return []\n }\n\n // 데이터셋의 entry 역할을 조회\n @FieldResolver(type => Role)\n async entryRole(@Root() dataSet: DataSet): Promise<Role> {\n return (\n dataSet.entryRole ||\n (dataSet.entryRoleId &&\n (await getRepository(Role).findOneBy({\n id: dataSet.entryRoleId\n })))\n )\n }\n\n // 데이터셋의 supervisory 역할을 조회\n @FieldResolver(type => Role, { description: 'Retrieves the supervisory role for the dataset' })\n async supervisoryRole(@Root() dataSet: DataSet): Promise<Role> {\n return (\n dataSet.supervisoryRole ||\n (dataSet.supervisoryRoleId &&\n (await getRepository(Role).findOneBy({\n id: dataSet.supervisoryRoleId\n })))\n )\n }\n\n @FieldResolver(type => [AssigneeItem], { description: 'Retrieves the assignee items for the dataset' })\n async assignees(@Root() dataSet: DataSet, @Ctx() context: ResolverContext): Promise<AssigneeItem[]> {\n const { domain, user } = context.state\n const { assignees } = dataSet\n\n if (!assignees || !(assignees instanceof Array)) {\n return null\n }\n\n var assigneeItemList = []\n\n for (let item of assignees) {\n // \"value\" deprecated. to be removed\n var { type, assignee, value } = item\n var id = assignee?.id || id\n\n switch (type) {\n case 'Employee':\n assignee = id && (await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Department':\n assignee = id && (await getRepository('Department').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Role':\n assignee = id && (await getRepository('Role').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Myself':\n assignee = user\n break\n case 'MyDepartment':\n case 'MySupervisor':\n break\n default:\n }\n\n id ? assigneeItemList.push({ type, assignee }) : assigneeItemList.push({ type })\n }\n\n return assigneeItemList\n }\n\n @FieldResolver(type => [ApprovalLineItem], { description: 'Retrieves the approval line items for the dataset' })\n async approvalLine(@Root() dataSet: DataSet, @Ctx() context: ResolverContext): Promise<ApprovalLineItem[]> {\n const { domain, user } = context.state\n const { reviewApprovalLine } = dataSet\n\n if (!reviewApprovalLine || !(reviewApprovalLine instanceof Array)) {\n return null\n }\n\n var approvalLineItems = []\n\n for (let item of reviewApprovalLine) {\n // \"value\" deprecated. to be removed\n var { type, approver, value } = item\n var id = approver?.id || value\n approver = null\n\n switch (type) {\n case 'Employee':\n approver = id && (await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Department':\n approver = id && (await getRepository('Department').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Role':\n approver = id && (await getRepository('Role').findOneBy({ domain: { id: domain.id }, id }))\n break\n case 'Myself':\n approver = user\n break\n case 'MyDepartment':\n case 'MySupervisor':\n break\n default:\n }\n\n id ? approvalLineItems.push({ type, approver }) : approvalLineItems.push({ type })\n }\n\n return approvalLineItems\n }\n\n @FieldResolver(type => Board, { nullable: true, description: 'Retrieves the entry board for the dataset' })\n async entryBoard(@Root() dataSet: DataSet): Promise<Board> {\n if (dataSet.entryType == 'board' && dataSet.entryView) {\n return await getRepository(Board).findOneBy({ id: dataSet.entryView })\n }\n }\n\n @FieldResolver(type => Board, { nullable: true, description: 'Retrieves the monitor board for the dataset' })\n async monitorBoard(@Root() dataSet: DataSet): Promise<Board> {\n if (dataSet.monitorType == 'board' && dataSet.monitorView) {\n return await getRepository(Board).findOneBy({ id: dataSet.monitorView })\n }\n }\n\n @FieldResolver(type => DataKeySet, { nullable: true, description: 'Retrieves the data key set for the dataset' })\n async dataKeySet(@Root() dataSet: DataSet): Promise<DataKeySet> {\n return (\n dataSet.dataKeySet ||\n (dataSet.dataKeySetId &&\n (await getRepository(DataKeySet).findOneBy({\n id: dataSet.dataKeySetId\n })))\n )\n }\n\n @FieldResolver(type => Scenario, { description: 'Retrieves the normal scenario for the dataset.' })\n async normalScenario(@Root() dataSet: DataSet): Promise<Scenario> {\n return (\n dataSet.normalScenario ||\n (dataSet.normalScenarioId &&\n (await getRepository(Scenario).findOneBy({\n id: dataSet.normalScenarioId\n })))\n )\n }\n\n @FieldResolver(type => Scenario, { description: 'Retrieves the outlier scenario for the dataset.' })\n async outlierScenario(@Root() dataSet: DataSet): Promise<Scenario> {\n return (\n dataSet.outlierScenario ||\n (dataSet.outlierScenarioId &&\n (await getRepository(Scenario).findOneBy({\n id: dataSet.outlierScenarioId\n })))\n )\n }\n\n // 데이터셋의 도메인을 조회\n @FieldResolver(type => Domain)\n async domain(@Root() dataSet: DataSet): Promise<Domain> {\n return dataSet.domainId && (await getRepository(Domain).findOneBy({ id: dataSet.domainId }))\n }\n\n // 데이터셋의 업데이트한 사용자를 조회\n @FieldResolver(type => User)\n async updater(@Root() dataSet: DataSet): Promise<User> {\n return dataSet.updaterId && (await getRepository(User).findOneBy({ id: dataSet.updaterId }))\n }\n\n // 데이터셋의 생성자를 조회\n @FieldResolver(type => User)\n async creator(@Root() dataSet: DataSet): Promise<User> {\n return dataSet.creatorId && (await getRepository(User).findOneBy({ id: dataSet.creatorId }))\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the latest collection time for the dataset.' })\n async latestCollectedAt(@Root() dataSet: DataSet): Promise<Date> {\n const sample = await getRepository(DataSample).findOne({\n select: ['id', 'collectedAt'],\n where: { dataSet: { id: dataSet.id } },\n order: { collectedAt: 'DESC' }\n })\n\n return sample?.collectedAt\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the next schedule time for the dataset.' })\n async nextSchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, schedule, timezone } = dataSet\n\n if (!schedule) {\n return\n }\n\n var interval = parser.parseExpression(schedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.next().toDate()\n }\n\n @FieldResolver(type => Date, { nullable: true, description: 'Retrieves the previous schedule time for the dataset.' })\n async prevSchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, schedule, timezone } = dataSet\n\n if (!schedule) {\n return\n }\n\n var interval = parser.parseExpression(schedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.prev().toDate()\n }\n\n @FieldResolver(type => Date, {\n nullable: true,\n description: 'Retrieves the next summary schedule time for the dataset.'\n })\n async nextSummarySchedule(@Root() dataSet: DataSet): Promise<Date> {\n const { domainId, summarySchedule, timezone } = dataSet\n\n if (!summarySchedule) {\n return\n }\n\n var interval = parser.parseExpression(summarySchedule, {\n tz: timezone || ((await getRepository(Domain).findOneBy({ id: domainId })) as Domain).timezone || 'UTC'\n })\n\n return interval.next().toDate()\n\n // FIXME: getSchedules 의 파라미터를 수정해야한다. scheduler 가 없거나 커넥션이 끊겨있어서 오래걸리는 문제는 어떻게 ?? 비동기로 처리한다. 어떻게???\n // client: {\n // application: Application,\n // group: `${domain.id}`,\n // type: 'data-set',\n // key: dataSet.id,\n // operation: 'summary'\n // }\n // const schedule = getSchedules('name', 'group', false)\n // return schedule.nextSchedule\n }\n\n @FieldResolver(type => String, { description: 'Retrieves the report template for the dataset.' })\n async reportTemplate(@Root() dataset: DataSet): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: dataset.domainId },\n refType: `${DataSet.name}-report-template`,\n refBy: dataset.id\n }\n })\n\n return attachment?.path\n }\n\n @FieldResolver(returns => Boolean, { description: 'Whether the user is a supervisor for this dataset' })\n async isSupervisor(@Root() dataset: DataSet, @Ctx() context: ResolverContext): Promise<boolean> {\n const { user, domain } = context.state\n\n const foundUser = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = foundUser.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n return roles.includes(dataset.supervisoryRoleId)\n }\n\n @FieldResolver(returns => Boolean, { description: 'Whether the user is allowed to enter data for this dataset' })\n async isEntryAllowed(@Root() dataset: DataSet, @Ctx() context: ResolverContext): Promise<boolean> {\n const { user, domain } = context.state\n\n const foundUser = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = foundUser.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n return roles.includes(dataset.entryRoleId)\n }\n}\n"]}
|