2017-10-11 9 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") 
} 

그래서 아이디어는 사용자가 또한 초기 폴더를 생성합니다 프로젝트를 생성 할 때, 사용자가 나중에 폴더를 추가 할 수 있습니다 :

내 스키마는 같은입니다. Naïvely, 다음과 같이하고 싶습니다.

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 
    } 
    } 
} 

참고.