From 18c11e405a343d542d63b4bfd09a3388f9f6b0d8 Mon Sep 17 00:00:00 2001
From: Roger Braun <roger@rogerbraun.net>
Date: Thu, 24 Nov 2016 18:16:20 +0100
Subject: [PATCH] Add status and conversation fetching to apiService.

---
 src/services/api/api.service.js | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index d828aff0..87102376 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -7,18 +7,16 @@ const FAVORITE_URL = '/api/favorites/create'
 const UNFAVORITE_URL = '/api/favorites/destroy'
 const RETWEET_URL = '/api/statuses/retweet'
 const STATUS_UPDATE_URL = '/api/statuses/update.json'
+const STATUS_URL = '/api/statuses/show'
 const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload'
-// const CONVERSATION_URL = '/api/statusnet/conversation/';
+const CONVERSATION_URL = '/api/statusnet/conversation'
 
-// const FORM_CONTENT_TYPE = {'Content-Type': 'application/x-www-form-urlencoded'};
-
-// import { param, ajax } from 'jquery';
-// import { merge } from 'lodash';
+const oldfetch = window.fetch
 
 let fetch = (url, options) => {
   const baseUrl = ''
   const fullUrl = baseUrl + url
-  return window.fetch(fullUrl, options)
+  return oldfetch(fullUrl, options)
 }
 
 const authHeaders = (user) => {
@@ -29,6 +27,16 @@ const authHeaders = (user) => {
   }
 }
 
+const fetchConversation = ({id}) => {
+  let url = `${CONVERSATION_URL}/${id}.json?count=100`
+  return fetch(url).then((data) => data.json())
+}
+
+const fetchStatus = ({id}) => {
+  let url = `${STATUS_URL}/${id}.json`
+  return fetch(url).then((data) => data.json())
+}
+
 const fetchTimeline = ({timeline, credentials, since = false, until = false}) => {
   const timelineUrls = {
     public: PUBLIC_TIMELINE_URL,
@@ -108,6 +116,8 @@ const uploadMedia = ({formData, credentials}) => {
 const apiService = {
   verifyCredentials,
   fetchTimeline,
+  fetchConversation,
+  fetchStatus,
   favorite,
   unfavorite,
   retweet,