csblogs/web-app

View on GitHub
src/controllers/blog-controller.js

Summary

Maintainability
A
0 mins
Test Coverage
import * as api from '../helpers/api';

export const PAGE_SIZE = 10;

export function getAllPosts(pageNumber) {
  return api.get('post', {
    page: pageNumber - 1,
    page_size: PAGE_SIZE
  });
}

export function getBloggerPosts(bloggerId, pageNumber) {
  return api.get('post', {
    author_id: bloggerId,
    page: pageNumber - 1,
    page_size: PAGE_SIZE
  });
}

export function getPostAuthors(posts) {
  // Add posts author IDs to array
  const ids = posts.map(post => post.authorId);

  // Stringify as CSV
  const idsParams = ids.join(',');

  return api.get('user', {
    ids: idsParams
  })
  .then(users => {
    // Return author as a property of each post
    const postsWithAuthors = posts;

    for (let i = 0; i < posts.length; ++i) {
      postsWithAuthors[i].author = users[posts[i].authorId];
    }
    return postsWithAuthors;
  });
}