mares-error-mapper
Version:
마레스 에러를 번역 및 매핑하는 모듈입니다.
82 lines (80 loc) • 1.96 kB
JavaScript
module.exports.excludeErrorObject = (error, excludingParams) => {
let rows = error
let newRows = []
for (let i = 0; i < rows.length; ++i) {
let row = rows[i]
let isSearched = false
for (let j = 0; j < excludingParams.length; ++j) {
if (excludingParams[j] === row.param) {
isSearched = true
break
}
}
if (!isSearched) {
newRows.push(row)
}
}
return newRows
}
module.exports.translateErrorCodeByJson = (errors, codeLangJson) => {
let parsedJson = {}
try {
parsedJson = JSON.parse(codeLangJson)
} catch (e) {
if (e instanceof SyntaxError) {
errors.push({
code: 'jsonParseError',
msg: 'translate json parse error. please send message to server developer',
value: null,
domain: null
})
return errors
} else {
errors.push({
code: 'unexpectedError',
msg: 'error at mares-error-mapper. please send message to server developer',
value: null,
domain: null
})
return errors
}
}
let newErrors = []
for (let i = 0; i < errors.length; ++i) {
let newError = {}
if (((errors[i].code === errors[i].msg) || !errors[i].msg) && parsedJson) {
if (parsedJson.codes) {
if (parsedJson.codes.hasOwnProperty(errors[i].code)) {
newError = errors[i]
newError.msg = parsedJson.codes[errors[i].code]
} else {
newError = errors[i]
}
}
newErrors.push(newError)
} else {
newErrors.push(errors[i])
}
}
return newErrors
}
module.exports.translateErrorCode = (errors, codeLang) => {
let newErrors = []
for (let i = 0; i < errors.length; ++i) {
let newError = {}
if (((errors[i].code === errors[i].msg) || !errors[i].msg) && codeLang) {
if (codeLang.codes) {
if (codeLang.codes.hasOwnProperty(errors[i].code)) {
newError = errors[i]
newError.msg = codeLang.codes[errors[i].code]
} else {
newError = errors[i]
}
}
newErrors.push(newError)
} else {
newErrors.push(errors[i])
}
}
return newErrors
}