Skip to content

Instantly share code, notes, and snippets.

@codeofsumit
Created May 14, 2020 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codeofsumit/98e6ba118a14294dc4d859bea0d3de37 to your computer and use it in GitHub Desktop.
Save codeofsumit/98e6ba118a14294dc4d859bea0d3de37 to your computer and use it in GitHub Desktop.
import gql from 'graphql-tag';
import { client } from './apollo'
// const { createDBConnection } = require('./mongo')
const getActivity = async (portfolio) => {
const q = gql`
query ActivityByPortfolioId($portfolio: String!) {
activityByPortfolioId(portfolio: $portfolio, _size: 9999) {
data {
_id
type
holding
isin
amount
company
price
shares
date
broker
portfolio
},
}
}
`;
const result = await client.query({ query: q, variables: { portfolio } })
return result.data.activityByPortfolioId.data;;
}
const createActivities = async (activities) => {
console.log('Create Activities', activities.length)
const promises = activities.map((a) => {
const q = gql`mutation createActivity($ActivityInput: ActivityInput!) {
createActivity(data: $ActivityInput)
{
_id
type
holding
isin
amount
company
price
broker
shares
date
portfolio
}
}`;
return client.mutate({
mutation: q,
variables: {
ActivityInput: a
}
})
})
return Promise.all(promises).then((res) => {
return res.map((r) => r.data.createActivity)
})
}
const updateActivity = async (id, activity) => {
const q = gql`mutation UpdateAnActivity($ActivityInput: ActivityInput!, $id: ID!) {
updateActivity(id: $id, data: $ActivityInput)
{
_id
type
holding
isin
amount
company
price
shares
broker
date
portfolio
}
}`;
return client.mutate({
mutation: q,
variables: {
id: id,
ActivityInput: activity
}
}).then((res) => {
return res.data.updateActivity;
})
}
const deleteActivity = async (id) => {
const q = gql`mutation DeleteAnActivity($id: ID!) {
deleteActivity(id: $id)
{
_id
}
}`;
return client.mutate({
mutation: q,
variables: {
id: id,
}
}).then((res) => {
return res.data.deleteActivity._id
})
}
export { getActivity, createActivities, updateActivity, deleteActivity }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment