From 4bcd9732fafe1eb7b9aa47dc4ed72b92af174c59 Mon Sep 17 00:00:00 2001
From: Jonas Heinrich <onny@project-insanity.org>
Date: Thu, 18 Mar 2021 14:13:00 +0100
Subject: [PATCH] implement server side fyyd api requests

---
 CHANGELOG.md                   |  2 ++
 lib/Service/FyydApiService.php | 25 ++++++++++++++++++++-----
 package.json                   |  1 +
 src/services/ShowApi.js        |  2 +-
 src/views/Browse.vue           |  2 +-
 5 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cce06a1..58e1750 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,8 @@ yet implemented.
   [#179](https://git.project-insanity.org/onny/nextcloud-app-podcast/-/issues/179) @onny
 - Api use getRequestToken
   [#180](https://git.project-insanity.org/onny/nextcloud-app-podcast/-/issues/180) @onny
+- Less mixed content: query fyyd api on server side
+  [#194](https://git.project-insanity.org/onny/nextcloud-app-podcast/-/issues/194) @onny
 
 ## 0.2 - 2021-02
 
diff --git a/lib/Service/FyydApiService.php b/lib/Service/FyydApiService.php
index 6d087a7..f109e52 100644
--- a/lib/Service/FyydApiService.php
+++ b/lib/Service/FyydApiService.php
@@ -114,11 +114,26 @@ class FyydApiService {
 	public function queryCategory(string $category, int $count = 20,
 		int $page = 0) {
 
-		$url = "https://api.fyyd.de/0.2/podcast";
-
-		$options['query'] = [
-			'podcast_id' => $podcast_id,
-		];
+		if ($category == 'hot') {
+			$url = "https://api.fyyd.de/0.2/feature/podcast/hot";
+			$options['query'] = [
+				'count' => $count,
+				'page' => $page,
+			];
+		} else if ($category == 'latest') {
+			$url = "https://api.fyyd.de/0.2/podcast/latest";
+			$options['query'] = [
+				'count' => $count,
+				'page' => $page,
+			];
+		} else {
+			$url = "https://api.fyyd.de/0.2/category";
+			$options['query'] = [
+				'count' => $count,
+				'page' => $page,
+				'category_id' => $category,
+			];
+		}
 
 		$client = $this->clientService->newClient();
 		try {
diff --git a/package.json b/package.json
index 400a9ba..fca2a21 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
 		"stylelint:fix": "stylelint src --fix"
 	},
 	"dependencies": {
+		"@nextcloud/auth": "^1.3.0",
 		"@nextcloud/axios": "^1.6.0",
 		"@nextcloud/dialogs": "^3.1.1",
 		"@nextcloud/l10n": "^1.4.1",
diff --git a/src/services/ShowApi.js b/src/services/ShowApi.js
index e276737..82045cc 100644
--- a/src/services/ShowApi.js
+++ b/src/services/ShowApi.js
@@ -112,7 +112,7 @@ export class ShowApi {
 
 		return axios.get(this.url('/shows'), {
 			params: {
-				category,
+				category: String(category),
 				count,
 				page,
 			},
diff --git a/src/views/Browse.vue b/src/views/Browse.vue
index b6977c1..6dc8afa 100644
--- a/src/views/Browse.vue
+++ b/src/views/Browse.vue
@@ -30,7 +30,7 @@
 				showallurl="#/browse/hot"
 				:podcasts="podcastsHot" />
 			<ItemSlider
-				title="t('podcast', 'New podcasts')"
+				:title="t('podcast', 'New podcasts')"
 				showallurl="#/browse/new"
 				:podcasts="podcastsLatest" />
 		</div>
-- 
GitLab