110 lines
2.4 KiB
JavaScript
110 lines
2.4 KiB
JavaScript
import gql from 'graphql-tag'
|
|
import possiblePositions from '@/app/euromat/possiblePositions'
|
|
|
|
export function getPositionById (id) {
|
|
return possiblePositions.find(option => option.id === id).position
|
|
}
|
|
|
|
export const apolloThesesQuery = gql`{
|
|
allQuestions(orderBy: ROW_ID_ASC) {
|
|
nodes {
|
|
category: categoryByCategoryRowId {
|
|
id
|
|
title
|
|
}
|
|
title
|
|
rowId
|
|
id
|
|
}
|
|
}
|
|
}`
|
|
|
|
export const apolloThesesUpdate = data => data.allQuestions.nodes.map(node => ({
|
|
id: node.rowId,
|
|
thesis: {
|
|
de: node.title
|
|
},
|
|
category: {
|
|
de: node.category ? node.category.title : ''
|
|
}
|
|
}))
|
|
|
|
export const apolloThesesCountQuery = gql`{
|
|
allQuestions {
|
|
totalCount
|
|
}
|
|
}`
|
|
|
|
export const apolloThesesCountUpdate = data => data.allQuestions.totalCount
|
|
|
|
export const apolloPersonsForResultsQuery = gql`{
|
|
allPeople(condition: {role: KANDIMAT_CANDIDATE}) {
|
|
nodes {
|
|
id
|
|
firstName
|
|
lastName
|
|
rowId
|
|
answers: answersByPersonRowId {
|
|
nodes {
|
|
id
|
|
position
|
|
questionRowId
|
|
text
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}`
|
|
|
|
export const apolloPersonsForResultsUpdate = data => data.allPeople.nodes.map(person => ({
|
|
id: person.rowId,
|
|
name: `${person.firstName} ${person.lastName}`,
|
|
token: person.firstName.charAt(0) + person.lastName.charAt(0),
|
|
positions: person.answers.nodes.map(answer => ({
|
|
thesis: answer.questionRowId,
|
|
position: getPositionById(answer.position),
|
|
statement: {
|
|
de: answer.text
|
|
}
|
|
}))
|
|
}))
|
|
|
|
export const apolloPersonPositionsQuery = gql`
|
|
query Person($partyId: Int!) {
|
|
personByRowId(rowId: $partyId) {
|
|
id
|
|
firstName
|
|
lastName
|
|
answers: answersByPersonRowId {
|
|
nodes {
|
|
id
|
|
position
|
|
personRowId
|
|
text
|
|
question: questionByQuestionRowId {
|
|
id
|
|
rowId
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}`
|
|
|
|
export const apolloPersonPositionsUpdate = data => {
|
|
const person = data.personByRowId
|
|
return {
|
|
id: person.rowId,
|
|
name: `${person.firstName} ${person.lastName}`,
|
|
token: person.firstName.charAt(0) + person.lastName.charAt(0),
|
|
theses: person.answers ? person.answers.nodes.map(answer => {
|
|
const question = answer.question
|
|
return question ? {
|
|
id: question.rowId,
|
|
position: getPositionById(answer.position),
|
|
statement: answer.text,
|
|
showStatement: false
|
|
} : null
|
|
}) : []
|
|
}
|
|
}
|