Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
operations.js 3.19 KiB
import gql from 'graphql-tag'

export const CURRENT_USER = gql`
  query($email: String) {
    epmc_currentUser(email: $email) {
      id
    }
  }
`

export const GET_USER = gql`
  query($email: String!) {
    userByEmail(email: $email) {
      id
    }
  }
`

const ManuscriptFragment = gql`
  fragment ManuscriptFragment on Manuscript {
    id
    status
    formState
    journal {
      journalTitle
      meta {
        nlmta
        pmcStatus
        pubmedStatus
      }
    }
    meta {
      title
      articleIds {
        pubIdType
        id
      }
      publicationDates {
        type
        date
      }
      fundingGroup {
        fundingSource
        awardId
        title
        pi {
          surname
          givenNames
          title
          email
        }
      }
      releaseDelay
      unmatchedJournal
      notes {
        id
        notesType
        content
      }
    }
    files {
      id
      type
      label
      filename
      url
      mimeType
    }
    teams {
      role
      teamMembers {
        user {
          id
        }
        alias {
          name {
            title
            surname
            givenNames
          }
        }
      }
    }
  }
`

export const GET_MANUSCRIPT = gql`
  query GetManuscript($id: ID!) {
    manuscript(id: $id) {
      ...ManuscriptFragment
    }
  }
  ${ManuscriptFragment}
`

export const CHECK_DUPES = gql`
  query($id: ID!, $pmid: String, $title: String!) {
    checkDuplicates(id: $id, pmid: $pmid, title: $title) {
      ...ManuscriptFragment
    }
  }
  ${ManuscriptFragment}
`

export const CREATE_MANUSCRIPT = gql`
  mutation CreateManuscript {
    createManuscript {
      id
    }
  }
`

export const UPDATE_MANUSCRIPT = gql`
  mutation UpdateManuscript($data: ManuscriptInput!) {
    updateManuscript(data: $data) {
      id
      status
      formState
      meta {
        title
        articleIds {
          pubIdType
          id
        }
        publicationDates {
          type
          date
        }
        fundingGroup {
          fundingSource
          awardId
          title
          pi {
            surname
            givenNames
            title
            email
          }
        }
        releaseDelay
        unmatchedJournal
      }
    }
  }
`

export const CREATE_NOTE = gql`
  mutation CreateNote($data: NewNoteInput!) {
    createNote(data: $data) {
      id
      meta {
        notes {
          id
          notesType
          content
        }
      }
    }
  }
`

export const UPDATE_NOTE = gql`
  mutation UpdateNote($data: NoteInput!) {
    updateNote(data: $data) {
      id
      meta {
        notes {
          id
          notesType
          content
        }
      }
    }
  }
`

export const REJECT_MANUSCRIPT = gql`
  mutation RejectManuscript($data: NewNoteInput!) {
    rejectManuscript(data: $data) {
      manuscript {
        ...ManuscriptFragment
      }
      errors {
        message
      }
    }
  }
  ${ManuscriptFragment}
`

export const SUBMIT_MANUSCRIPT = gql`
  mutation SubmitManuscript($data: ManuscriptInput!) {
    submitManuscript(data: $data) {
      manuscript {
        ...ManuscriptFragment
      }
      errors {
        message
      }
    }
  }
  ${ManuscriptFragment}
`