gfw-api/gfw-subscription-api

View on GitHub
app/src/adapters/storyAdapter.js

Summary

Maintainability
A
1 hr
Test Coverage
F
29%
const logger = require('logger');
const UrlService = require('services/urlService');

const DOMAIN_IMAGE = 'http://gfw2stories.s3.amazonaws.com/uploads/';

const searchImage = (story) => {
    if (story.media) {
        for (let i = 0, { length } = story.media; i < length; i++) {
            if (story.media[i].previewUrl) {
                return DOMAIN_IMAGE + story.media[i].previewUrl;
            }
        }
    }
    return null;
};

class StoryAdapter {

    constructor(results) {
        this.results = results;
    }

    transform() {
        const stories = [];
        if (this.results && this.results.length > 0) {
            for (let i = 0, { length } = this.results; i < length; i++) {
                stories.push({
                    title: this.results[i].title,
                    description: this.results[i].details ? this.results[i].details.substring(0, 350) : '',
                    url: UrlService.flagshipUrl(`/stories/${this.results[i].id}`),
                    image: searchImage(this.results[i])
                });

            }
        }
        logger.info('Stories', stories);
        return {
            list: this.results,
            value: this.results.length,
            stories
        };
    }

}

module.exports = StoryAdapter;