diff --git a/config/index.js b/config/index.js index 2da9b85..055fdf3 100644 --- a/config/index.js +++ b/config/index.js @@ -2,10 +2,15 @@ const { env } = process; module.exports = { server: { +<<<<<<< HEAD url: env.SERVER_URL || "http://localhost:10230", +======= + url: env.SERVER_URL || 'http://localhost:10230', +>>>>>>> c96cdf0ebd17f805235c6fa9eecf2ea79ecca19b port: parseInt(env.SERVER_PORT, 10) || 10230, jwt_secret: env.SERVER_JWT_SECRET || "testsecret", jwt_expire: parseInt(env.SERVER_JWT_EXPIRE, 10) || 60 * 60 * 24 * 30, // 30 day +<<<<<<< HEAD }, sso: { authorized_endpoint: env.SSO_AUTHORIZED_ENDPOINT || "", @@ -13,5 +18,21 @@ module.exports = { logout_endpoint: env.SSO_LOGOUT_ENDPOINT || "", client_id: env.SSO_CLIENT_ID || "", client_secret: env.SSO_CLIENT_SECRET || "", +======= + }, + redis: { + host: env.REDIS_HOST || 'localhost', + port: parseInt(env.REDIS_PORT, 10) || 6379, + password: env.REDIS_PASSWORD || '', + prefix: env.REDIS_PREFIX || '', + db: parseInt(env.REDIS_DB, 10) || 0, + }, + sso: { + authorized_endpoint: env.SSO_AUTHORIZED_ENDPOINT || '', + token_endpoint: env.SSO_TOKEN_ENDPOINT || '', + logout_endpoint: env.SSO_LOGOUT_ENDPOINT || '', + client_id: env.SSO_CLIENT_ID || '', + client_secret: env.SSO_CLIENT_SECRET || '', +>>>>>>> c96cdf0ebd17f805235c6fa9eecf2ea79ecca19b }, }; diff --git a/constants/index.js b/constants/index.js index 721f144..3ddfd50 100644 --- a/constants/index.js +++ b/constants/index.js @@ -2,7 +2,13 @@ const constants = { PAGE_SIZE: 20, OPENID_EXPIRE: 300, // 5min +<<<<<<< HEAD ALLOW_GROUP_ROLE: ["Ironman3"], +======= + INTERNAL_REGULATION_CACHE_TTL: 1800, // 30min + REPORT_CACHE_TTL: 600, // 10 min + ALLOW_GROUP_ROLE: ['Ironman3'] // 允許的 Group 身份 +>>>>>>> c96cdf0ebd17f805235c6fa9eecf2ea79ecca19b }; module.exports = constants; diff --git a/package.json b/package.json index 9967ff4..6114db9 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,10 @@ "main": "index.js", "scripts": { "start": "node index.js", +<<<<<<< HEAD +======= + "test": "mocha --timeout 5000 --exit test/ && jest --passWithNoTests --runInBand --coverage .", +>>>>>>> c96cdf0ebd17f805235c6fa9eecf2ea79ecca19b "postinstall": "node -e \"var s='../',d='node_modules/src',fs=require('fs');fs.exists(d,function(e){e||fs.symlinkSync(s,d,'dir')});\"" }, "keywords": [], diff --git a/routes/types.js b/routes/types.js index 30e911f..1a42efa 100644 --- a/routes/types.js +++ b/routes/types.js @@ -10,20 +10,3 @@ module.exports = {}; * @property {string} errorMessage api error message (除了prod以外的環境會有) */ -/** - * @typedef Pager - * @description 頁數資訊 - * @property {number} page 目前頁數 - * @property {number} count 總筆數 - * @property {number} total 總頁數 - */ - -/** - * @typedef Account - * @description API回傳使用者資訊 - * @property {string} id 使用者ID - * @property {string} phone 手機 - * @property {string} display_name 顯示名稱 - * @property {string} created_time 帳號建立時間 - * @property {string} updated_time 帳號更新時間 - */ diff --git a/utils/index.js b/utils/index.js index 6ef1b96..e1cf9ef 100644 --- a/utils/index.js +++ b/utils/index.js @@ -122,45 +122,3 @@ mod.selectObject = (obj, param) => { return newObj; }; - -/** - * pad string to target length - * @param {any} v source input - * @param {number} len target length - * @param {number} direct pad direct (-1 left, 1 right) - * @param {string} padChar default '0' - * @return {string} - */ -mod.pad = (v, len = 0, direct = -1, padChar = '0') => { - if (v === null || v === undefined) return ''; - if (typeof v !== 'string' && !v.toString) return ''; - if (direct !== 1 && direct !== -1) return ''; - if (typeof v !== 'string') v = v.toString(); - if (typeof padChar !== 'string') padChar = '0'; - len = mod.toNumber(len, 0, 0); - if (v.length < len) { - if (direct < 0) v = `${padChar}${v}`; - else v = `${v}${padChar}`; - return mod.pad(v, len, direct, padChar); - } - - return v; -}; - -/** - * pad left - * @param {any} v - * @param {number} len - * @param {string} padChar - * @return {string} - */ -mod.padLeft = (v, len = 0, padChar = '0') => mod.pad(v, len, -1, padChar); - -/** - * pad right - * @param {any} v - * @param {number} len - * @param {string} padChar - * @return {string} - */ -mod.padRight = (v, len = 0, padChar = '0') => mod.pad(v, len, 1, padChar); diff --git a/utils/sso/index.js b/utils/sso/index.js index be6a12e..2b568da 100644 --- a/utils/sso/index.js +++ b/utils/sso/index.js @@ -135,7 +135,12 @@ mod.getToken = async (code, state) => { // decode access token console.log("token ::: ", jwt.decode(accessToken)); +<<<<<<< HEAD console.log("body ::: ", body); +======= + const decoded = jwt.decode(idToken); + if (!decoded || typeof decoded !== 'object') throw new Error('jwt decode fail'); +>>>>>>> c96cdf0ebd17f805235c6fa9eecf2ea79ecca19b // @ts-ignore const { preferred_username: preferredUsername } = decoded; if (!preferredUsername) throw new Error("id token field missing");