@kiwicom/smart-faq
Version:
45 lines (39 loc) • 1.08 kB
JavaScript
// @flow
import { commitMutation, graphql } from 'react-relay';
import createEnvironment from '../../shared/relay/environment';
import type {
VoteArticleMutationVariables,
VoteArticleMutationResponse,
} from './__generated__/VoteArticleMutation.graphql';
const voteArticleMutation = graphql`
mutation VoteArticleMutation($articleId: Int!, $vote: VoteType!) {
voteFAQArticle(originalId: $articleId, vote: $vote) {
id
}
}
`;
const voteArticle = ({
articleId,
vote,
}: VoteArticleMutationVariables): Promise<VoteArticleMutationResponse> =>
new Promise((resolve, reject) => {
const variables: VoteArticleMutationVariables = {
articleId,
vote,
};
commitMutation(createEnvironment(), {
mutation: voteArticleMutation,
variables,
onCompleted: (
response: VoteArticleMutationResponse,
errors: $ReadOnlyArray<Error>,
) => {
if (errors?.length) {
reject(errors[0]);
}
resolve(response);
},
onError: reject,
});
});
export default voteArticle;