From 2a1802e3ec57dd3025ef32d4f531f37dccff79b9 Mon Sep 17 00:00:00 2001 From: Valyukhov Date: Tue, 8 Apr 2025 20:38:47 +0300 Subject: [PATCH 1/2] fix: :bug: added token to gitdoor --- .env.local.example | 1 + components/Project/Download.js | 9 +++++---- lib/axios.js | 15 +++++++++++++++ pages/api/git/bible.js | 2 +- pages/api/git/info.js | 2 +- pages/api/git/obs-tn.js | 2 +- pages/api/git/obs-tq.js | 2 +- pages/api/git/obs-twl.js | 2 +- pages/api/git/obs.js | 2 +- pages/api/git/ta.js | 2 +- pages/api/git/tn.js | 2 +- pages/api/git/tq.js | 2 +- pages/api/git/tw.js | 2 +- pages/api/git/twl.js | 2 +- pages/api/git/whole-book.js | 2 +- utils/helper.js | 6 ++++-- 16 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 lib/axios.js diff --git a/.env.local.example b/.env.local.example index b1db52a9f..dd28ce2f0 100644 --- a/.env.local.example +++ b/.env.local.example @@ -21,3 +21,4 @@ NEXT_GROUP_TELEGRAM=TELEGRAM_GROUP_OR_CHANNEL_ID NEXT_MESSAGE_THREAD_ID=YOUR_MESSAGE_THREAD_ID API_KEY_AQUIFER=YOUR_AQUIFER_API_KEY +GIT_DOOR43_BEARER_TOKEN=YOUR_GIT_DOOR43_API_KEY diff --git a/components/Project/Download.js b/components/Project/Download.js index 303512bfb..3a82f73dd 100644 --- a/components/Project/Download.js +++ b/components/Project/Download.js @@ -24,6 +24,7 @@ import { downloadPdf, getCountChaptersAndVerses, } from 'utils/helper' +import gitDoorAxios from '../../lib/axios' import { useGetBook, useGetChapters } from 'utils/hooks' import useSupabaseClient from 'utils/supabaseClient' @@ -295,7 +296,7 @@ function Download({ const repo = parts[4].split('_')[0] + '_tw' const owner = parts[3] const newUrl = `${baseUrl}/${owner}/${repo}/archive/master.zip` - const response = await axios.get(newUrl, { responseType: 'arraybuffer' }) + const response = await gitDoorAxios.get(newUrl, { responseType: 'arraybuffer' }) const zip = new JSZip() await zip.loadAsync(response.data) const newZip = new JSZip() @@ -335,7 +336,7 @@ function Download({ usfmFileNames[bookCode] }` try { - const response = await axios.get(newUrl) + const response = await gitDoorAxios.get(newUrl) return response.data } catch (error) { console.error('Error fetching original USFM:', error) @@ -356,7 +357,7 @@ function Download({ acc[chapter] = 0 return acc }, {}) - const methods = await axios.get('/api/methods') + const methods = await gitDoorAxios.get('/api/methods') const method = methods.data.find((method) => method.title === project.method) if (!method?.offline_steps) { return null @@ -384,7 +385,7 @@ function Download({ const url = resourcesUrls[resource] try { if (resource === 'obs') { - const response = await axios.get(url, { responseType: 'arraybuffer' }) + const response = await gitDoorAxios.get(url, { responseType: 'arraybuffer' }) if (response.status !== 200) throw new Error(`Failed to fetch OBS archive: ${url}`) diff --git a/lib/axios.js b/lib/axios.js new file mode 100644 index 000000000..9eaa5111e --- /dev/null +++ b/lib/axios.js @@ -0,0 +1,15 @@ +import axios from 'axios'; + +const instance = axios.create(); + +instance.interceptors.request.use((config) => { + const token = process.env.GIT_DOOR43_BEARER_TOKEN; + + if (token) { + config.headers.Authorization = `Bearer ${token}`; + } + + return config; +}); + +export default instance; \ No newline at end of file diff --git a/pages/api/git/bible.js b/pages/api/git/bible.js index d6b8b91d2..ae73657ae 100644 --- a/pages/api/git/bible.js +++ b/pages/api/git/bible.js @@ -1,5 +1,5 @@ -import axios from 'axios' import usfm from 'usfm-js' +import axios from "../../../lib/axios" import { parseChapter } from 'utils/usfmHelper' diff --git a/pages/api/git/info.js b/pages/api/git/info.js index 684e42929..9b63103e1 100644 --- a/pages/api/git/info.js +++ b/pages/api/git/info.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/obs-tn.js b/pages/api/git/obs-tn.js index 8fe22bba0..a9293c9f5 100644 --- a/pages/api/git/obs-tn.js +++ b/pages/api/git/obs-tn.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/obs-tq.js b/pages/api/git/obs-tq.js index 3bb0c565d..943ed0bdc 100644 --- a/pages/api/git/obs-tq.js +++ b/pages/api/git/obs-tq.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/obs-twl.js b/pages/api/git/obs-twl.js index f8da06cc3..391a4639c 100644 --- a/pages/api/git/obs-twl.js +++ b/pages/api/git/obs-twl.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/obs.js b/pages/api/git/obs.js index 52b773255..e82059242 100644 --- a/pages/api/git/obs.js +++ b/pages/api/git/obs.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { mdToJson } from 'utils/helper' diff --git a/pages/api/git/ta.js b/pages/api/git/ta.js index c544d9ea8..0f18b94e7 100644 --- a/pages/api/git/ta.js +++ b/pages/api/git/ta.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" /** * @swagger diff --git a/pages/api/git/tn.js b/pages/api/git/tn.js index b3a13bc00..0f835df20 100644 --- a/pages/api/git/tn.js +++ b/pages/api/git/tn.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { tsvToJSON } from '@texttree/tn-quote' diff --git a/pages/api/git/tq.js b/pages/api/git/tq.js index 398cd4aff..afb285bb1 100644 --- a/pages/api/git/tq.js +++ b/pages/api/git/tq.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/tw.js b/pages/api/git/tw.js index 0db00d588..29ed3ce30 100644 --- a/pages/api/git/tw.js +++ b/pages/api/git/tw.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" /** * @swagger diff --git a/pages/api/git/twl.js b/pages/api/git/twl.js index 94471e14b..2ebf3a174 100644 --- a/pages/api/git/twl.js +++ b/pages/api/git/twl.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' diff --git a/pages/api/git/whole-book.js b/pages/api/git/whole-book.js index cf220bd8f..65409935a 100644 --- a/pages/api/git/whole-book.js +++ b/pages/api/git/whole-book.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from "../../../lib/axios" import usfm from 'usfm-js' import { parseChapter } from 'utils/usfmHelper' diff --git a/utils/helper.js b/utils/helper.js index 0c9880612..c918bc350 100644 --- a/utils/helper.js +++ b/utils/helper.js @@ -1,4 +1,6 @@ import axios from 'axios' +import gitDoorAxios from '../lib/axios' + import jsyaml from 'js-yaml' import usfm from 'usfm-js' @@ -404,7 +406,7 @@ export const parseManifests = async ({ resources, current_method }) => { const urlArray = pathname.split('/') const url = getBaseResourceUrl(urlArray) const manifestUrl = getBaseResourceUrl(urlArray) + '/manifest.yaml' - const { data } = await axios.get(manifestUrl) + const { data } = await gitDoorAxios.get(manifestUrl) const manifest = jsyaml.load(data, { json: true }) if (current_method.resources[el]) { @@ -474,7 +476,7 @@ export const getCountChaptersAndVerses = async ({ link, book_code }) => { } try { - const { data } = await axios.get(link) + const { data } = await gitDoorAxios.get(link) return calculateChaptersAndVerses(data) } catch (error) { return { data: null, error } From f31ca27b94c7fb01f29c9beac9f1aa3c97ce44da Mon Sep 17 00:00:00 2001 From: Valyukhov Date: Tue, 8 Apr 2025 20:51:06 +0300 Subject: [PATCH 2/2] fix: :bug: fix eslint errrors --- .vscode/settings.json | 3 ++- components/Project/Download.js | 3 ++- lib/axios.js | 18 +++++++++--------- pages/api/git/bible.js | 3 ++- pages/api/git/info.js | 4 ++-- pages/api/git/obs-tn.js | 4 ++-- pages/api/git/obs-tq.js | 4 ++-- pages/api/git/obs-twl.js | 4 ++-- pages/api/git/obs.js | 2 +- pages/api/git/ta.js | 2 +- pages/api/git/tn.js | 4 ++-- pages/api/git/tq.js | 4 ++-- pages/api/git/tw.js | 2 +- pages/api/git/twl.js | 4 ++-- pages/api/git/whole-book.js | 3 ++- utils/helper.js | 3 +-- 16 files changed, 35 insertions(+), 32 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d33115c03..e979d8b5e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,6 @@ "editor.formatOnSave": true }, "files.eol": "\n", - "editor.tabSize": 2 + "editor.tabSize": 2, + "i18next.i18nPaths": "d:/Gecraft/level/public/locales" } diff --git a/components/Project/Download.js b/components/Project/Download.js index 3a82f73dd..ed052269d 100644 --- a/components/Project/Download.js +++ b/components/Project/Download.js @@ -15,6 +15,8 @@ import ButtonLoading from 'components/ButtonLoading' import CheckBox from 'components/CheckBox' import ListBox from 'components/ListBox' +import gitDoorAxios from '../../lib/axios' + import { newTestamentList, obsStoryVerses, usfmFileNames } from 'utils/config' import { compileChapter, @@ -24,7 +26,6 @@ import { downloadPdf, getCountChaptersAndVerses, } from 'utils/helper' -import gitDoorAxios from '../../lib/axios' import { useGetBook, useGetChapters } from 'utils/hooks' import useSupabaseClient from 'utils/supabaseClient' diff --git a/lib/axios.js b/lib/axios.js index 9eaa5111e..78ea1b927 100644 --- a/lib/axios.js +++ b/lib/axios.js @@ -1,15 +1,15 @@ -import axios from 'axios'; +import axios from 'axios' -const instance = axios.create(); +const instance = axios.create() instance.interceptors.request.use((config) => { - const token = process.env.GIT_DOOR43_BEARER_TOKEN; - + const token = process.env.GIT_DOOR43_BEARER_TOKEN + if (token) { - config.headers.Authorization = `Bearer ${token}`; + config.headers.Authorization = `Bearer ${token}` } - - return config; -}); -export default instance; \ No newline at end of file + return config +}) + +export default instance diff --git a/pages/api/git/bible.js b/pages/api/git/bible.js index ae73657ae..e4ba32320 100644 --- a/pages/api/git/bible.js +++ b/pages/api/git/bible.js @@ -1,5 +1,6 @@ import usfm from 'usfm-js' -import axios from "../../../lib/axios" + +import axios from '../../../lib/axios' import { parseChapter } from 'utils/usfmHelper' diff --git a/pages/api/git/info.js b/pages/api/git/info.js index 9b63103e1..8332914e5 100644 --- a/pages/api/git/info.js +++ b/pages/api/git/info.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/info: diff --git a/pages/api/git/obs-tn.js b/pages/api/git/obs-tn.js index a9293c9f5..0f5eab9f5 100644 --- a/pages/api/git/obs-tn.js +++ b/pages/api/git/obs-tn.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + import { filterNotes } from 'utils/helper' /** diff --git a/pages/api/git/obs-tq.js b/pages/api/git/obs-tq.js index 943ed0bdc..18eec6d30 100644 --- a/pages/api/git/obs-tq.js +++ b/pages/api/git/obs-tq.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/obs-tq: diff --git a/pages/api/git/obs-twl.js b/pages/api/git/obs-twl.js index 391a4639c..728bb5f7e 100644 --- a/pages/api/git/obs-twl.js +++ b/pages/api/git/obs-twl.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/obs-twl: diff --git a/pages/api/git/obs.js b/pages/api/git/obs.js index e82059242..46743b884 100644 --- a/pages/api/git/obs.js +++ b/pages/api/git/obs.js @@ -1,4 +1,4 @@ -import axios from "../../../lib/axios" +import axios from '../../../lib/axios' import { mdToJson } from 'utils/helper' diff --git a/pages/api/git/ta.js b/pages/api/git/ta.js index 0f18b94e7..213951871 100644 --- a/pages/api/git/ta.js +++ b/pages/api/git/ta.js @@ -1,4 +1,4 @@ -import axios from "../../../lib/axios" +import axios from '../../../lib/axios' /** * @swagger diff --git a/pages/api/git/tn.js b/pages/api/git/tn.js index 0f835df20..ee4e3f6de 100644 --- a/pages/api/git/tn.js +++ b/pages/api/git/tn.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { tsvToJSON } from '@texttree/tn-quote' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/tn: diff --git a/pages/api/git/tq.js b/pages/api/git/tq.js index afb285bb1..d87aa9d59 100644 --- a/pages/api/git/tq.js +++ b/pages/api/git/tq.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/tq: diff --git a/pages/api/git/tw.js b/pages/api/git/tw.js index 29ed3ce30..122f0d8e3 100644 --- a/pages/api/git/tw.js +++ b/pages/api/git/tw.js @@ -1,4 +1,4 @@ -import axios from "../../../lib/axios" +import axios from '../../../lib/axios' /** * @swagger diff --git a/pages/api/git/twl.js b/pages/api/git/twl.js index 2ebf3a174..865219eae 100644 --- a/pages/api/git/twl.js +++ b/pages/api/git/twl.js @@ -1,7 +1,7 @@ -import axios from "../../../lib/axios" - import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/twl: diff --git a/pages/api/git/whole-book.js b/pages/api/git/whole-book.js index 65409935a..2396d94e8 100644 --- a/pages/api/git/whole-book.js +++ b/pages/api/git/whole-book.js @@ -1,6 +1,7 @@ -import axios from "../../../lib/axios" import usfm from 'usfm-js' +import axios from '../../../lib/axios' + import { parseChapter } from 'utils/usfmHelper' /** diff --git a/utils/helper.js b/utils/helper.js index c918bc350..3315ec374 100644 --- a/utils/helper.js +++ b/utils/helper.js @@ -1,11 +1,10 @@ import axios from 'axios' -import gitDoorAxios from '../lib/axios' - import jsyaml from 'js-yaml' import usfm from 'usfm-js' import { JsonToPdf } from '@texttree/obs-format-convert-rcl' +import gitDoorAxios from '../lib/axios' import { obsStoryVerses } from './config' const isServer = typeof window === 'undefined'