Industrial
01/05/2019, 3:55 PMawait Promise.all(
apiMarkets.map((market) => {
return apolloClient.mutate({
mutation: upsertMarket,
variables: market,
})
}),
)Stef
01/06/2019, 9:43 AMStef
01/06/2019, 9:43 AMasync createTopMedia() {
let mediaToCreate = []
let i = 0
for (let media of this.rawInstagramMedia.sort(
(a, b) => b.likes - a.likes
)) {
mediaToCreate.push({
instagramAccount: {
connect: {
id: this.instagramAccountId
}
},
instagramMediaId: media.id,
instagramUserId: this.user.id,
likes: media.likes.count,
postedAt: new Date(parseInt(media.created_time * 1000)).toISOString(),
thumbnailUrl: media.images.thumbnail.url
})
i = i + 1
if (i === 100) {
break
}
}
let stringifiedMedia = JSON.stringify(mediaToCreate).replace(
/\"([^(\")"]+)\":/g,
'$1:'
)
const query = `mutation CreateMediaBatch($name: String!, $colourReportRequestId: ID) {
createMediaBatch(
data:{
name: $name
instagramMedias: {
create: ${stringifiedMedia}
}
colourReportRequest: {
connect: {
id: $colourReportRequestId
}
}
}
){
id
}
}`
console.log('Create media query', query)
const result = await client
.request(query, {
name: `${this.username}=${new Date().toISOString()}`,
colourReportRequestId: this.colourReportRequestId
})
.then(data => {
//console.log(data)
this.mediaBatch = data.createMediaBatch
return data
})
.catch(e => {
if (e.message.includes('unique constraint')) {
// ignore this for now
} else {
throw e
}
})
return true
}