Re: `serverless framework integration` (<https://g...
# prisma-whats-new
a
Re:
serverless framework integration
(https://github.com/graphcool/graphcool-framework/issues/243) Is it safe to assume there’s currently no way to specify provider / iam roles for Graphcool Framework? Just double checking to make sure I didn’t miss anything
f
sls or aws cli can handle the parameters .. you can pass envs via ${param}
Copy code
client.request(query4)
  .then(data => console.log(JSON.stringify(data)))
  .catch(err => {
    console.log(err.response.errors) // GraphQL response errors
    console.log(err.response.data) // Response data if available
  })

var params = {
  DeliveryStreamName: 'instagram', /* required */
  Record: { /* required */
    Data: JSON.stringify(links) /* Strings will be Base-64 encoded on your behalf */ /* required */
  }
};
firehose.putRecord(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

await chromeless.end()
}
basically using GQL via request before initiating chromeless
and requiring the aws-sdk
Copy code
const Chromeless = require('chromeless').default
const AWS      = require('aws-sdk');
const firehose = new AWS.Firehose({region : 'us-west-2'});
const ApolloClient = require('apollo-client')
const ApolloProvider = require('react-apollo')
const gql = require('react-apollo');
const React = require('react')
const Lokka = require('lokka').Lokka;
const Transport = require('lokka-transport-http').Transport;
const { request } = require('graphql-request')

const { GraphQLClient } = require('graphql-request')

const client = new GraphQLClient('https://<app>.<http://prisma.sh/<app>-prisma/<app>|prisma.sh/<app>-prisma/<app>>', {
  headers: {
    Authorization: 'Bearer
That way you have arn/iam .. anything under the aws-sdk available
Full Example:
Copy code
const Chromeless = require('chromeless').default
const AWS      = require('aws-sdk');
const firehose = new AWS.Firehose({region : 'us-west-2'});
const ApolloClient = require('apollo-client')
const ApolloProvider = require('react-apollo')
const gql = require('react-apollo');
const React = require('react')
const Lokka = require('lokka').Lokka;
const Transport = require('lokka-transport-http').Transport;
const { request } = require('graphql-request')

const { GraphQLClient } = require('graphql-request')

const client = new GraphQLClient('<GraphQL API Endpoint>', {
  headers: {
    Authorization: 'Bearer <Prisma Token>',
  },
})

const query = `{
  influencers(where: {influencerName:"<name>"}) {
    myNetworkPlatforms(where:{network:INSTAGRAM}) {
      link
      network
      networkUsername
    }
   id
  }
}`

client.request(query)
  .then(data => console.log(JSON.stringify(data)))
  .catch(err => {
    console.log(err.response.errors) // GraphQL response errors
    console.log(err.response.data) // Response data if available
  })

async function run() {
  const chromeless = new Chromeless({
    remote: {
    endpointUrl: '<endpoint>',
    apiKey: '<chromeless-api-key>',
    },
  })

const links = await chromeless
  .goto('<url>')
    .wait(3)
    .evaluate(() => {
      const links = [].map.call(
	document.querySelectorAll("div._mck9w"),
	a => (a.lastChild.href)
      )
      return links

//	string.
//	replace(null, '')
//	replace(undefined, '')
    })


//const perma = JSON.stringify(links[0]).replace(/\S([a-z0-9]{5}).\S\S([a-z0-9]{3}).([a-z0-9]{9}).([a-z0-9]{3})\S.\S/g, '').replace(/\S\S?taken-by.*/g, '').replace(/["']/g, '')
const perma = links[0]
const perma2 = links[1]
const perma3 = links[2]
const perma4 = links[3]
//console.log(links)
console.log(perma)
console.log(perma2)
console.log(perma3)
console.log(perma4)

const query = `mutation {
  createPost(
    permalink: \"${perma}\"
    network: INSTAGRAM
    influencerId: \"<id>\"
  ) {
    id
  }
}`

client.request(query)
  .then(data => console.log(JSON.stringify(data)))
  .catch(err => {
    console.log(err.response.errors) // GraphQL response errors
    console.log(err.response.data) // Response data if available
  })


client.request(query4)
  .then(data => console.log(JSON.stringify(data)))
  .catch(err => {
    console.log(err.response.errors) // GraphQL response errors
    console.log(err.response.data) // Response data if available
  })

var params = {
  DeliveryStreamName: 'instagram', /* required */
  Record: { /* required */
    Data: JSON.stringify(links) /* Strings will be Base-64 encoded on your behalf */ /* required */
  }
};
firehose.putRecord(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

await chromeless.end()
}

run().catch(console.error.bind(console))