rein
11/13/2017, 1:32 PMMaslov
11/13/2017, 1:34 PMtype User @model {
  ...
  likes: [Post!]! @relation(name: "UserLikes")
}type Post @model {
  ...
  likedUsers: [User!]! @relation(name: "UserLikes")
}rein
11/13/2017, 1:35 PMrein
11/13/2017, 1:35 PMMaslov
11/13/2017, 1:38 PMallPosts(
    orderBy: createdAt_DESC,
    filter: {
      OR: [{
        user: {
          id_not: $userId
        }
      }, { user: null } ]
    },
    first: $limit
  )Maslov
11/13/2017, 1:38 PMMaslov
11/13/2017, 1:38 PMMaslov
11/13/2017, 1:38 PMrein
11/13/2017, 1:39 PMrein
11/13/2017, 1:39 PMrein
11/13/2017, 1:39 PMMaslov
11/13/2017, 1:39 PMrein
11/13/2017, 1:40 PMMaslov
11/13/2017, 1:40 PMMaslov
11/13/2017, 1:40 PMMaslov
11/13/2017, 1:41 PM'use latest'
const fromEvent = require('graphcool-lib').fromEvent;
function setLikes(api, postId, likesCount) {
  const request = `
    mutation($styleId: ID!, $likesCount: Int!) {
      updatePost(id: $postId, likesCount: $likesCount) {
        id
        likesCount
      }
    }`
  return api.request(request, { postId, likesCount })
};
module.exports = function (event) {
  const api = fromEvent(event).api('simple/v1')
  if (event.data.Post.updatedFields.indexOf('likesCount') === -1 &&
      event.data.Post.node._likedUsersMeta) {
    event.data.Post.node.likesCount = event.data.Post.node._likedUsersMeta.count;
    return setLikes(api, event.data.Post.node.id, event.data.Post.node._likedUsersMeta.count)
      .then((data) => { return { data: data } });
  }
  return { data: event.data };
}Maslov
11/13/2017, 1:42 PMrein
11/13/2017, 1:42 PMrein
11/13/2017, 1:43 PMrein
11/13/2017, 1:43 PMMaslov
11/13/2017, 1:43 PMMaslov
11/13/2017, 1:44 PMMaslov
11/13/2017, 1:44 PMrein
11/13/2017, 1:45 PMMaslov
11/13/2017, 1:46 PMMaslov
11/13/2017, 1:47 PMrein
11/13/2017, 1:47 PMrein
11/13/2017, 1:47 PMMaslov
11/13/2017, 1:47 PMMaslov
11/13/2017, 1:48 PM