2017-10-11 5 views
0

私のapolloプロジェクトでは、ユーザーがプロジェクトを作成すると、そのプロジェクトに関連付けられた最初のフォルダが自動的に作成されます。Graphqlでアイテムを追加するときの関係を作成する

私のスキーマのようなものです:ユーザーは、それはまた、最初のフォルダを作成しますプロジェクトを作成するときにアイデアがある

type Project implements Node { 
    id: ID! @isUnique 
    createdAt: DateTime! 
    updatedAt: DateTime! 
    name: String! 
    folders: [Folders!]! @relation(name: "ProjectFolders") 
} 

type Folder implements Node { 
    id: ID! @isUnique 
    createdAt: DateTime! 
    updatedAt: DateTime! 
    name: String! 
    project: Project @relation(name: "ProjectFolders") 
} 

、ユーザーが後から複数のフォルダを追加することができます。いいえ、私は次のようなことをしたい:

mutation CreateProjectMutation($name: String!) { 
    createProject(name: $name) { 
    id 
    name 
    } 

    createFolder(name: $name, $projectId: ?PROJECT_ID?) { 
    id 
    name 
    } 
} 

正しい方法は何ですか?

答えて

1

あなたはどちらかcreateProjectで開始することにより、この場合にはnested create mutationを使用することができます。

mutation CreateProjectMutation($name: String!) { 
    createProject(
    name: $name 
    folders: [{ 
     name: $name 
    }] 
) { 
    id 
    name 
    folders { 
     id 
    } 
    } 
} 

createFolder:パラメータはそれぞれfoldersproject、呼び出されることを

mutation CreateFolderMutation($name: String!) { 
    createFolder(
    name: $name 
    project: { 
     name: $name 
    } 
) { 
    id 
    name 
    project { 
     id 
    } 
    } 
} 

注意を。

関連する問題