feat: put survey and bug report url to backend (#57)

* feat: put survey and bug report url to backend

* fix: centralize hardcoded url to config

* fix: validate url before redirecting
This commit is contained in:
Lin, Hung-Shin authored and GitHub committed 2023-11-03 21:32:12 +08:00
1 parent f93b4d757b
commit 4c2f3f5397
8 files changed
+42 -5

No files matched your search

+2 -3
View File
@@ -1,7 +1,6 @@
<script setup>
import { ref } from 'vue'
const SURVEY_URL = 'https://www.surveycake.com/s/z67xG'
import { surveyUrl } from '../config'
const showModal = ref(true) // Controls whether the modal is visible or not
@@ -27,7 +26,7 @@ setTimeout(() => {
如果您能撥冗填寫這份問卷,我們將不勝感激,這對我們非常重要!
</p>
<a
:href="SURVEY_URL"
:href="surveyUrl"
target="_blank"
class="inline-flex justify-center rounded-lg text-base font-black py-2 mt-3 bg-text-primary w-full"
>填寫問卷</a
+1 -2
View File
@@ -2,6 +2,7 @@
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import { logout } from '../utils/auth'
import { bugReportUrl } from '../config'
import api from '../utils/api'
const router = useRouter()
@@ -11,8 +12,6 @@ const handleLogout = async () => {
router.push({ name: 'login' })
}
const bugReportUrl = 'https://www.surveycake.com/s/gOreA'
const questData = ref(null)
const questErr = ref(null)
+7
View File
@@ -0,0 +1,7 @@
export const surveyUrl = '/api/v1/survey'
export const bugReportUrl = '/api/v1/bug-report'
export default {
surveyUrl,
bugReportUrl,
}
+2
View File
@@ -70,6 +70,8 @@ services:
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
- SURVEY_URL=${SURVEY_URL}
- BUG_REPORT_URL=${BUG_REPORT_URL}
base:
image: lancatlin/linux-odyssey:base
+2
View File
@@ -47,6 +47,8 @@ services:
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
- SURVEY_URL=${SURVEY_URL}
- BUG_REPORT_URL=${BUG_REPORT_URL}
db-test:
image: mongo
+2
View File
@@ -38,6 +38,8 @@ services:
- DOCKER_NETWORK=linux-odyssey-players
- SECRET_KEY=b1d2e917-17b9-4fce-9055-082dee6ec5d6 # Only for testing
- TRUSTED_PROXIES=${TRUSTED_PROXIES}
- SURVEY_URL=${SURVEY_URL}
- BUG_REPORT_URL=${BUG_REPORT_URL}
- HOST_PWD=${PWD}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
+16
View File
@@ -30,4 +30,20 @@ router.use(
commands
)
router.get('/survey', (req, res) => {
if (!config.surveyUrl) {
res.status(404).send('Survey not configured')
return
}
res.redirect(config.surveyUrl)
})
router.get('/bug-report', (req, res) => {
if (!config.bugReportUrl) {
res.status(404).send('Bug report not configured')
return
}
res.redirect(config.bugReportUrl)
})
export default router
+10
View File
@@ -11,6 +11,14 @@ function getTrustProxies(key) {
.filter((p) => validator.isIPRange(p) || validator.isIP(p))
}
function getUrl(key) {
const url = get(key, '')
if (validator.isURL(url)) {
return validator.trim(url)
}
return ''
}
const config = {
host: get('HOST', 'localhost'),
port: get('PORT', 3000),
@@ -30,6 +38,8 @@ const config = {
clientSecret: get('GITHUB_CLIENT_SECRET', ''),
},
trustedProxies: getTrustProxies('TRUSTED_PROXIES'),
surveyUrl: getUrl('SURVEY_URL', ''),
bugReportUrl: getUrl('BUG_REPORT_URL', ''),
}
config.baseUrl = get('BASE_URL', `http://${config.host}:${config.port}`)