import getInstagramData from '@romuloalves/get-instagram-data';
const parse = (data: any): Array<Object> => {
if (data == null || data.entry_data == null ||
data.entry_data.ProfilePage == null || data.entry_data.ProfilePage.length === 0) {
return [];
}
const [profilePage, ..._] = data.entry_data.ProfilePage;
return profilePage.graphql.user.edge_owner_to_timeline_media.edges.map((edge: any) => {
const { node: media } = edge;
let caption = '';
let likes = 0;
if (media.edge_media_to_caption && media.edge_media_to_caption.edges && media.edge_media_to_caption.edges.length > 0) {
caption = media.edge_media_to_caption.edges[0].node.text;
}
if (media.edge_media_preview_like && media.edge_media_preview_like.count) {
likes = media.edge_media_preview_like.count;
}
return {
id: media.id,
thumbnail: media.thumbnail_src,
isVideo: media.is_video,
likes,
mediaUrl: media.display_url,
dimensions: media.dimensions,
takenAt: media.taken_at_timestamp,
owner: media.owner,
caption
};
});
}
export default async user => {
const data = await getInstagramData(user);
return parse(data);
};