'use strict';
const R = require('ramda');
let createArticleContent = require('./articleContent');
const hasContentItem = R.curry(function (type, relation) {
return R.compose(R.not, R.isNil, R.path(['content_item', `${type}_id`]))(relation);
});
const isRelationType = R.propEq('relation_type');
module.exports = (imageDimensions, relations) => {
const picturerel = R.find(R.and(isRelationType('picturerel'), hasContentItem('image')), relations);
const teaserrel = R.find(R.and(isRelationType('teaserrel'), hasContentItem('image')), relations);
const videorel = R.find(R.and(isRelationType('videorel'), hasContentItem('video')), relations);
const galleryrel = R.find(R.and(isRelationType('picturerel'), hasContentItem('gallery')), relations);
let leadImage = null;
let leadGallery = null;
let leadVideo = null;
let leadTeaser = null;
if(!R.isNil(galleryrel)) {
leadGallery = createArticleContent(imageDimensions, galleryrel);
}
Eif(!R.isNil(picturerel)) {
leadImage = createArticleContent(imageDimensions, picturerel);
}
Eif(!R.isNil(teaserrel)) {
leadTeaser = createArticleContent(imageDimensions, teaserrel);
}
if(!R.isNil(videorel)) {
const videoArticleContent = createArticleContent(imageDimensions, videorel);
const vleadImage = R.isNil(leadImage) ? null : leadImage[1];
const vleadTeaser = R.isNil(leadTeaser) ? null : leadTeaser[1];
leadVideo = [videoArticleContent[0], R.assocPath(['data', 'attributes', 'leadMedia'], vleadImage || vleadTeaser, videoArticleContent[1])];
}
return leadGallery || leadVideo || leadImage || leadTeaser || null;
}; |