From eb46bafa2e2e135c959d2b74b17cfbdb3f84c688 Mon Sep 17 00:00:00 2001 From: Yone Date: Sun, 23 Feb 2025 16:48:24 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=E3=83=8B=E3=83=A5=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E6=8A=95=E7=A8=BF=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E8=A9=B3=E7=B4=B0=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/lib/getNews.ts | 8 ++++---- backend/src/lib/postNews.ts | 30 ++++++++++++++---------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/backend/src/lib/getNews.ts b/backend/src/lib/getNews.ts index 18c7411..29dc1de 100644 --- a/backend/src/lib/getNews.ts +++ b/backend/src/lib/getNews.ts @@ -13,16 +13,16 @@ const getNews = async () => { // HTTPエラーが発生した場合 if (!response.ok) { - throw new Error(`HTTPエラー: ${response.status}`); + throw new Error(`【getNews】HTTPエラー: ${response.status}`); } const data = await response.json(); - console.log(data); + // console.log(data); // ニュースの取得に失敗した場合 if (data.status !== 'ok') { - throw new Error('ニュースの取得に失敗しました。'); + throw new Error(`【getNews】ニュースの取得に失敗しました。(status: ${data.status})`); } const newsArray = data.news; @@ -37,7 +37,7 @@ const getNews = async () => { } if (!news) { - throw new Error('表示できるニュースがありません。'); + throw new Error('【getNews】表示できるニュースがありません。'); } return { isSuccess: true, diff --git a/backend/src/lib/postNews.ts b/backend/src/lib/postNews.ts index b3a0dd4..36c48b1 100644 --- a/backend/src/lib/postNews.ts +++ b/backend/src/lib/postNews.ts @@ -29,7 +29,7 @@ const postNews = async (requestApiKey: string) => { return { isSuccess: false, tanka: { - line0: 'ニュースの取得に失敗しました', + line0: newsResponse.message, line1: '', line2: '', line3: '', @@ -56,33 +56,31 @@ const postNews = async (requestApiKey: string) => { body: formData, }); - console.log('postResponse', postResponse); + // console.log('postResponse', postResponse); if (!postResponse.ok) { - return { - isSuccess: false, - tanka: { - line0: '', - line1: '', - line2: '', - line3: '', - line4: '', - }, - }; + throw new Error(`【postNews】HTTPエラー: ${postResponse.status}`); } - const json = await postResponse.json(); + const jsonPostResponse = await postResponse.json(); + // console.log('jsonPostResponse', jsonPostResponse); + + if (jsonPostResponse.message !== '投稿しました.') { + throw new Error( + `【postNews】ニュースの投稿に失敗しました。(status: ${jsonPostResponse.message})` + ); + } return { isSuccess: true, - tanka: json.tanka, + tanka: jsonPostResponse.tanka, }; - } catch (error) { + } catch (error: any) { console.error(error); return { isSuccess: false, tanka: { - line0: '投稿に失敗しました', + line0: error.message, line1: '', line2: '', line3: '', From aa2d0a47140e101cca6ebc0808d4fa4dbb419462 Mon Sep 17 00:00:00 2001 From: Yone Date: Sun, 23 Feb 2025 20:17:03 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E3=81=AA=E3=81=9C=E3=81=8B=E3=81=9F?= =?UTF-8?q?=E3=81=BE=E3=81=AB=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=8C=E5=87=BA?= =?UTF-8?q?=E3=82=8B=E3=81=A8=E3=81=93=E3=82=8D=E3=81=AB=E6=B3=A8=E9=87=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/lib/getNews.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/lib/getNews.ts b/backend/src/lib/getNews.ts index 29dc1de..fdaba67 100644 --- a/backend/src/lib/getNews.ts +++ b/backend/src/lib/getNews.ts @@ -11,7 +11,7 @@ const getNews = async () => { `https://api.currentsapi.services/v1/latest-news?language=ja&apiKey=${env.CURRENTS_API_KEY}` ); - // HTTPエラーが発生した場合 + // HTTPエラーが発生した場合(たまにここでエラーが起きる) if (!response.ok) { throw new Error(`【getNews】HTTPエラー: ${response.status}`); } From c4f19fef62ba07fcd4323b0a3ec956e860c8edaf Mon Sep 17 00:00:00 2001 From: Yone Date: Sun, 23 Feb 2025 21:27:37 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=95=E7=A8=BF=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=83=8B=E3=83=A5=E3=83=BC=E3=82=B9=E3=82=92=E3=83=A9=E3=83=B3?= =?UTF-8?q?=E3=83=80=E3=83=A0=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/lib/getNews.ts | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/backend/src/lib/getNews.ts b/backend/src/lib/getNews.ts index fdaba67..048dcb7 100644 --- a/backend/src/lib/getNews.ts +++ b/backend/src/lib/getNews.ts @@ -25,20 +25,29 @@ const getNews = async () => { throw new Error(`【getNews】ニュースの取得に失敗しました。(status: ${data.status})`); } - const newsArray = data.news; - - let news; - for (let i = 0; i < newsArray.length; i++) { - const newsTemp = newsArray[i]; - if (newsTemp.title !== '' && newsTemp.description !== '' && newsTemp.url !== '') { - news = newsTemp; - break; + // ニュースの配列 + const newsAllArray = data.news; + + // 表示できるニュースの配列 + let satisfiedNewsArray = []; + for (let i = 0; i < newsAllArray.length; i++) { + if ( + newsAllArray[i].title !== '' && + newsAllArray[i].description !== '' && + newsAllArray[i].url !== '' + ) { + satisfiedNewsArray.push(newsAllArray[i]); } } - if (!news) { + if (satisfiedNewsArray.length === 0) { throw new Error('【getNews】表示できるニュースがありません。'); } + + // 表示できるニュースの配列からランダムに1つ選択 + const randomIndex = Math.floor(Math.random() * satisfiedNewsArray.length); + const news = satisfiedNewsArray[randomIndex]; + return { isSuccess: true, news: { From 061ef37790bda6275e02fdd040f9956654156f86 Mon Sep 17 00:00:00 2001 From: Yone Date: Mon, 24 Feb 2025 01:59:59 +0900 Subject: [PATCH 4/4] =?UTF-8?q?NEWS=5FUSER=5FID=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/.env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/.env.example b/backend/.env.example index 29bc3c2..18176e3 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -15,5 +15,6 @@ S3_SECRET_ACCESS_KEY= S3_BUCKET_NAME= CURRENTS_API_KEY= +NEWS_USER_ID= NEWS_POST_API_KEY= OUR_ID=