Skip to content

Instantly share code, notes, and snippets.

React
Angular
"Angular 2"
Ember
Vue
Backbone
Polymer
Aurelia
"No Front-End Framework"
"Other Front-End Frameworks"

Vulcan Charge

This package helps you process charges with Vulcan. It currently only supports Stripe, but other payment processors may be supported in the future (PRs welcome!).

Overview

This package does the following things:

  • Provide a button that triggers the Stripe Checkout form.
  • Once the form is submitted, trigger a GraphQL mutation that will perform the charge.
query postsListQuery($terms: JSON) {
postsTotal(terms: $terms)
postsList(terms: $terms) {
__typename
...PostsList
}
}
fragment PostsList on Post {
export default function withMutation({name, args}) {
let mutation;
if (args) {
const args1 = _.map(args, (type, name) => `$${name}: ${type}`); // e.g. $url: String
const args2 = _.map(args, (type, name) => `${name}: $${name}`); // e.g. $url: url
mutation = `
mutation ${name}(${args1}) {
${name}(${args2})
let mutation;
if (args) {
const args1 = _.map(args, (type, name) => `$${name}: ${type}`); // e.g. $url: String
const args2 = _.map(args, (type, name) => `${name}: $${name}`); // e.g. $url: url
mutation = `
mutation ${name}(${args1}) {
${name}(${args2})
}
`
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
class MyComponent extends Component { ... }
const getMetaDataMutation = gql`
mutation getMetaData($url: String) {
getMetaData(url: $url) {
thumbnailUrl
viewCount
export default function withGetMetaDataMutation(component) {
return graphql(gql`
mutation getMetaData($url: String) {
getMetaData(url: $url) {
thumbnailUrl
viewCount
tweetCount
}
}
`, {
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
export default function withGetMetaDataMutation(component) {
return graphql(gql`
mutation getMetaData($url: String) {
getMetaData(url: $url) {
thumbnailUrl
viewCount
tweetCount
http://www.uelectric.com/__media__/js/netsoltrademark.php?d=www.pinterest.com%2Fhongnhungblog%2F
http://www.generalhydrocarbonsholdingsllc.net/__media__/js/netsoltrademark.php?d=vietlike.vn%2Fhongnhungblog%2F
http://neanderthals.info/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://nutrendsxpo.us/__media__/js/netsoltrademark.php?d=soundcloud.com%2Fhongnhungblog
http://ivybrom.com/__media__/js/netsoltrademark.php?d=vietlike.vn%2Fhongnhungblog%2F
http://www.teachingengine.net/__media__/js/netsoltrademark.php?d=www.dailymotion.com%2Fhongnhungblog
http://neeva.com/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://www.e-bidhouse.com/__media__/js/netsoltrademark.php?d=vimeo.com%2Fhongnhungblog
http://www.rampage-sa.net/__media__/js/netsoltrademark.php?d=www.apsense.com%2Fuser%2Fhongnhungblog
http://insideencore.com/__media__/js/netsoltrademark.php?d=www.pinterest.com%2Fhongnhungblog%2F
@SachaG
SachaG / reducer.js
Created March 25, 2017 05:49
Apollo Query Reducer
const CommentsPageWithData = graphql(CommentsPageQuery, {
props({ data }) {
// ...
},
options({ params }) {
return {
reducer: (previousResults, action, variables) => {
let newResults = previousResults;