ui/app/utils/errors.js

95 lines
1.7 KiB
JavaScript

import ApiError from 'ember-api-store/models/error';
export default {
stringify(err) {
var str;
if ( typeof err === 'string' )
{
str = err;
}
else if ( err instanceof ApiError )
{
if ( err.get('status') === 422 )
{
str = 'Validation failed in API:';
var something = false;
if ( err.get('fieldName') )
{
str += ' ' + err.get('fieldName');
something = true;
}
if ( err.get('detail') )
{
str += ' (' + err.get('detail') + ')';
something = true;
}
if ( !something )
{
if ( err.get('message') )
{
str += ' ' + err.get('message');
something = true;
}
}
if ( !something )
{
str += ' (' + err.get('code') + ')';
}
switch ( err.get('code') )
{
case 'NotUnique':
str += ' is not unique'; break;
}
}
else
{
str = err.get('message');
if ( err.get('detail') )
{
if ( str )
{
str += ' (' + err.get('detail') + ')';
}
else
{
str = err.get('detail');
}
}
}
}
else if ( typeof err === 'object' )
{
if ( err.message )
{
str = err.message;
if ( err.detail )
{
if ( str )
{
str += ' (' + err.detail + ')';
}
else
{
str = err.detail;
}
}
}
else if ( err.detail )
{
str = err.detail;
}
}
else
{
// Good luck...
str = err;
}
return str;
},
};