diff --git a/client/src/reducers/authReducer.js b/client/src/reducers/authReducer.js
index 4e65b2c..f93f6c3 100644
--- a/client/src/reducers/authReducer.js
+++ b/client/src/reducers/authReducer.js
@@ -3,6 +3,7 @@ import {types} from '../actions/index';
export default function(state = {}, action) {
switch (action.type) {
case types.FETCH_USER:
+ console.log('actionpayload', action.payload);
return action.payload || false;
default:
return state;
diff --git a/server/controllers/movieDb.controller.js b/server/controllers/movieDb.controller.js
index ab66bc8..471c065 100644
--- a/server/controllers/movieDb.controller.js
+++ b/server/controllers/movieDb.controller.js
@@ -5,5 +5,6 @@ const router = Router();
router.get('/tv/search', movieDbService.searchTv);
router.get('/tv/similar', movieDbService.similarTv);
+router.get('/tv/popular', movieDbService.popularTv);
export default router;
diff --git a/server/services/moviedb/index.js b/server/services/moviedb/index.js
index ac13d00..eeabf50 100644
--- a/server/services/moviedb/index.js
+++ b/server/services/moviedb/index.js
@@ -10,6 +10,17 @@ const searchTv = async (req, res) => {
res.json(response);
};
+const popularTv = async (req, res) => {
+ const response = await movieDbApi.popularTv();
+ const library = await sonarrService.getSeries(req.user);
+ const jsonLibrary = JSON.parse(library);
+ const libraryTitles = jsonLibrary.map(show => show.title.toLowerCase());
+ const filteredResponse = response.results.filter(
+ show => !libraryTitles.includes(show.name.toLowerCase()),
+ );
+ res.json(filteredResponse);
+};
+
const similarTv = async (req, res) => {
const {showName} = req.query;
const searchResponse = await movieDbApi.searchTv(showName);
@@ -22,7 +33,6 @@ const similarTv = async (req, res) => {
// });
// Use Sonarr list instead
const libraryTitles = jsonLibrary.map(show => show.title.toLowerCase());
- console.log('titles', libraryTitles);
const filteredResponse = similarResponse.results.filter(
show => !libraryTitles.includes(show.name.toLowerCase()),
);
@@ -32,4 +42,5 @@ const similarTv = async (req, res) => {
export default {
searchTv,
similarTv,
+ popularTv,
};
diff --git a/server/services/moviedb/movieDbApi.js b/server/services/moviedb/movieDbApi.js
index 6b47d55..31554fc 100644
--- a/server/services/moviedb/movieDbApi.js
+++ b/server/services/moviedb/movieDbApi.js
@@ -4,6 +4,15 @@ import models from '../../db/models';
import MovieDb from 'moviedb-promise';
const mdb = new MovieDb(config.server.movieApiKey);
+const popularTv = async () => {
+ try {
+ const response = await mdb.miscPopularTvs();
+ return response;
+ } catch (error) {
+ helpers.handleError(error, 'popularTv');
+ }
+};
+
const searchTv = async showName => {
try {
const response = await mdb.searchTv({
@@ -29,4 +38,4 @@ const similarTV = async showId => {
}
};
-export default {searchTv, similarTV};
+export default {searchTv, similarTV, popularTv};
diff --git a/server/services/plex/index.js b/server/services/plex/index.js
index 96d91b6..b56a850 100644
--- a/server/services/plex/index.js
+++ b/server/services/plex/index.js
@@ -8,6 +8,10 @@ const getAuthToken = async (req, res) => {
try {
const {email, password, sonarrUrl, sonarrApiKey} = req.query;
const plexToken = await auth.fetchToken(email, password);
+ console.log('plex token', plexToken.includes('401'));
+ if (plexToken.includes('401')) {
+ return res.json('Invalid username or password.');
+ }
const plexUrl = await auth.plexUrl(plexToken);
const [rowsUpdate, updatedUser] = await models.User.update(
{plexUrl, plexToken, sonarrUrl, sonarrApiKey},
@@ -16,6 +20,7 @@ const getAuthToken = async (req, res) => {
return res.json(updatedUser);
} catch (error) {
+ console.log('error in auth', error);
return res.status(201).json(error.message);
}
};