diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts index 4a0f2220c806b480d30a07cb1634e1aac953d943..3ee3fbb9843478b3e0d048dc193537ca350d9364 100644 --- a/api/src/engine/connectors/datashield/main.connector.ts +++ b/api/src/engine/connectors/datashield/main.connector.ts @@ -14,38 +14,66 @@ export default class DataShieldService implements IEngineService { getAlgorithms(): Algorithm[] | Promise<Algorithm[]> { throw new Error('Method not implemented.'); } + createExperiment( data: ExperimentCreateInput, isTransient: boolean, ): Experiment | Promise<Experiment> { throw new Error('Method not implemented.'); } + listExperiments( page: number, name: string, ): ListExperiments | Promise<ListExperiments> { throw new Error('Method not implemented.'); } + getExperiment(uuid: string): Experiment | Promise<Experiment> { throw new Error('Method not implemented.'); } + removeExperiment( uuid: string, ): PartialExperiment | Promise<PartialExperiment> { throw new Error('Method not implemented.'); } + editExperient( uuid: string, expriment: ExperimentEditInput, ): Experiment | Promise<Experiment> { throw new Error('Method not implemented.'); } + getDomains(): Domain[] { - throw new Error('Method not implemented.'); + return [ + { + id: 'Dummy', + label: 'Dummy', + datasets: [{ id: 'DummyDataSet' }], + groups: [ + { + id: 'DummyGroup', + variables: ['DummyVar'], + groups: [], + }, + ], + rootGroup: { id: 'DummyGroup', variables: [], groups: [] }, + variables: [{ id: 'DummyVar', type: 'string' }], + }, + ]; } - getActiveUser(): Observable<string> { - throw new Error('Method not implemented.'); + getActiveUser(): string { + const dummyUser = { + username: 'anonymous', + subjectId: 'anonymousId', + fullname: 'anonymous', + email: 'anonymous@anonymous.com', + agreeNDA: true, + }; + return JSON.stringify(dummyUser); } editActiveUser(): Observable<string> { @@ -72,11 +100,11 @@ export default class DataShieldService implements IEngineService { throw new Error('Method not implemented.'); } - getExperiments(): Observable<string> { - throw new Error('Method not implemented.'); + getExperiments(): string { + return '[]'; } - getAlgorithmsREST(): Observable<string> { - throw new Error('Method not implemented.'); + getAlgorithmsREST(): string { + return '[]'; } } diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 80811045c0862864d4ba704712a9b0efa606685b..07fb2b4b0cfa378b1950147be5862307d4ff4ea9 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -28,7 +28,9 @@ export const dataToGroup = (data: Hierarchy): Group => { id: data.code, label: data.label, groups: data.groups ? data.groups.map(dataToGroup) : [], - variables: data.variables ? data.variables.map(dataToVariable) : [], + variables: data.variables + ? data.variables.map((data: VariableEntity) => data.code) + : [], }; }; diff --git a/api/src/engine/models/domain.model.ts b/api/src/engine/models/domain.model.ts index 8c3c593cc06bf0611a9aac2ffdd92ccfa21fb2f3..f5b8def42a318613b348040b2eccb3ea67a7aa29 100644 --- a/api/src/engine/models/domain.model.ts +++ b/api/src/engine/models/domain.model.ts @@ -1,9 +1,20 @@ import { Field, ObjectType } from '@nestjs/graphql'; import { Category } from './category.model'; +import { Entity } from './entity.model'; import { Group } from './group.model'; +import { Variable } from './variable.model'; @ObjectType() -export class Domain extends Group { +export class Domain extends Entity { + @Field({ nullable: true }) + description?: string; + + @Field(() => [Group]) + groups: Group[]; + + @Field(() => [Variable]) + variables: Variable[]; + @Field(() => [Category]) datasets: Category[]; diff --git a/api/src/engine/models/group.model.ts b/api/src/engine/models/group.model.ts index c2087ba2c6023a4a3d7f17110e3e739709d08a90..0cb97a48fd77bb9300192429b034adb0505f5a9c 100644 --- a/api/src/engine/models/group.model.ts +++ b/api/src/engine/models/group.model.ts @@ -1,6 +1,5 @@ import { Field, ObjectType } from '@nestjs/graphql'; import { Entity } from './entity.model'; -import { Variable } from './variable.model'; @ObjectType() export class Group extends Entity { @@ -10,6 +9,6 @@ export class Group extends Entity { @Field(() => [Group]) groups: Group[]; - @Field(() => [Variable]) - variables: Variable[]; + @Field(() => [String], { description: "List of variable's ids" }) + variables: string[]; } diff --git a/api/src/engine/models/variable.model.ts b/api/src/engine/models/variable.model.ts index e3c4098e31fccbcc4bd223c82ea55225559edaaf..8650f48b1044bb07c88964ae36aeb00d0d9a3d1b 100644 --- a/api/src/engine/models/variable.model.ts +++ b/api/src/engine/models/variable.model.ts @@ -11,9 +11,9 @@ export class Variable extends Entity { @Field({ nullable: true }) description?: string; - @Field(() => [Category]) - enumerations: Category[]; + @Field(() => [Category], { nullable: true, defaultValue: [] }) + enumerations?: Category[]; - @Field(() => [Group]) - groups: Group[]; + @Field(() => [Group], { nullable: true, defaultValue: [] }) + groups?: Group[]; } diff --git a/api/src/schema.gql b/api/src/schema.gql index aad684192e33c70fa81041ad58ef4c8d0b3bd6c8..ee828b162f66ff407881a7c9cdce312b450770e7 100644 --- a/api/src/schema.gql +++ b/api/src/schema.gql @@ -7,21 +7,23 @@ type Category { label: String } -type Variable { +type Group { id: String! label: String - type: String! description: String - enumerations: [Category!]! groups: [Group!]! + + """List of variable's ids""" + variables: [String!]! } -type Group { +type Variable { id: String! label: String + type: String! description: String - groups: [Group!]! - variables: [Variable!]! + enumerations: [Category!] + groups: [Group!] } type Domain {