bastienrobert/la-ferme

View on GitHub
packages/mobile/src/graphql/local/resolvers.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { GAME_INFOS_QUERY } from './'
import { DEFAULT_STATE } from './cache'

export default {
  Mutation: {
    setGameInfos: (_, { boxID, gameUUID, playerUUID }, { cache }) => {
      cache.writeData({
        data: {
          boxID,
          gameUUID,
          player: {
            __typename: 'Player',
            uuid: playerUUID
          }
        }
      })
      return true
    },
    clearGameInfos: (_, _vars, { cache }) => {
      cache.writeData({
        data: DEFAULT_STATE
      })
      return true
    },
    setPlayerInfos: (_, { character, skill, goal }, { cache }) => {
      const { player } = cache.readQuery({ query: GAME_INFOS_QUERY })
      cache.writeData({
        data: {
          player: Object.assign(player, {
            character,
            skill,
            goal
          })
        }
      })
      return true
    },
    setLastTargeter: (_, { targeter }, { cache }) => {
      cache.writeData({
        data: {
          targeter
        }
      })
      return true
    }
  }
}