| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/resources/js/mixins/ |
Upload File : |
export const errorHandlerMixin = {
methods:{
errorHandler_(err, tracker = []){
let { a, b } = this.errorSeparator_(err, tracker)
if(Object.keys(b).length > 0){
this.alertErrorMessages_( this.computeErrorMessages_(b) )
}
return a
},
errorSeparator_(err, tracker = []){
let responseMsg = "Something Is Not Right. Please Try Again Later."
let intersect_errors = {}
let not_intersect_errors = {}
if(err == null){
this.defaultNotify_(responseMsg)
}else if(err.status && err.data){
let { status, data } = err
// if is validation error
if(status == 422){
let errors = data.errors || data.message
// Object.keys(errors).forEach(function(key) {
// if (tracker.includes(key)) {
// intersect_errors[key] = errors[key];
// }else{
// not_intersect_errors[key] = errors[key];
// }
// });
Object.keys(errors).forEach(function(key) {
if (tracker.includes(key)) {
if(key.indexOf('.') !== -1)
{
var split = key.split(".");
if(intersect_errors[split[0]] === undefined)
{
intersect_errors[split[0]] = {
[split[1]] : errors[key]
}
}
else
{
intersect_errors[split[0]][split[1]] = errors[key]
}
}
else
{
intersect_errors[key] = errors[key];
}
}else{
not_intersect_errors[key] = errors[key];
}
});
}else{
responseMsg = [400,403].includes(status) ? data.message : responseMsg
this.defaultNotify_(responseMsg)
}
}else{
console.error(err)
}
return {
"a" : intersect_errors,
"b" : not_intersect_errors
};
},
defaultNotify_(message){
this.$toast.warning(message)
return null;
},
computeErrorMessages_(errors){
let error_keys = Object.keys(errors)
if(error_keys.length > 0){
let messages = []
error_keys.forEach((key)=>{
messages.push( errors[key][0] )
})
return messages;
}
return []
},
alertErrorMessages_(messages){
this.$toast.warning(messages.join('<br>'))
},
}
}