function extractFields()

in public/js/actions/AtomActions/getAudioPageData.js [47:79]


function extractFields (audioPage) {
  let audioEl = audioPage.elements.find(el => el.type === "audio");
  let seriesTag = audioPage.tags.find(tag => tag.type === "series" && tag.podcast);
  let audioAsset = audioEl.assets.find(asset => asset.type === "audio");
  let storyImage = audioPage.fields.thumbnail || "";

  let durationSeconds = (audioAsset && audioAsset.typeData) ?
    parseInt(audioAsset.typeData.durationMinutes || 0) * 60 + parseInt(audioAsset.typeData.durationSeconds || 0) :
    0;

  let trackUrl = audioAsset ? (audioAsset.file || "") : "";
  let contentId = audioEl ? (audioEl.id || "") : "";

  // subscription links are optional
  var subscriptionLinks = {};
  if (seriesTag) {
    let {subscriptionUrl, googlePodcastsUrl, spotifyUrl} = seriesTag.podcast;
    subscriptionLinks = {
      apple: subscriptionUrl,
      google: googlePodcastsUrl,
      spotify: spotifyUrl
    };
  }

  return {
    contentId,
    trackUrl,
    duration: durationSeconds,
    kicker: seriesTag ? seriesTag.webTitle : "",
    coverUrl: storyImage,
    subscriptionLinks
  };
}