fix: Gestione degli errori
Si è aggiornato l'handler degli errori, sostituendo JSONAPI.RequestError con ResponseError di Spraypaint in AddEditRecordDialog. Inoltre, si è rimodellata la gestione dell'errore in onSaveError adattandola alla risposta di Spraypaint. Il file request.d.ts è stato rinominato in spraypaint.d.ts e il suo contenuto è stato semplificato, esportando direttamente da 'spraypaint'. Infine, si è aggiornato l'index per importare il nuovo file spraypaint.d.ts.
This commit is contained in:
parent
71b03c14b6
commit
3f20852d01
|
@ -21,6 +21,8 @@ import {
|
|||
import Stream from 'mithril/stream';
|
||||
import {Form} from 'mithril-utilities';
|
||||
import {Class} from 'type-fest';
|
||||
import {JsonapiErrorDoc} from 'spraypaint';
|
||||
import {ResponseError} from 'spraypaint/lib-esm/request';
|
||||
|
||||
export default abstract class AddEditRecordDialog<M extends Model> extends RecordDialog<M> {
|
||||
// eslint-disable-next-line unicorn/no-null
|
||||
|
@ -132,7 +134,7 @@ export default abstract class AddEditRecordDialog<M extends Model> extends Recor
|
|||
this.afterSave(result);
|
||||
return result;
|
||||
} catch (error) {
|
||||
this.onSaveError(error as JSONAPI.RequestError);
|
||||
this.onSaveError(error as ResponseError);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -143,8 +145,8 @@ export default abstract class AddEditRecordDialog<M extends Model> extends Recor
|
|||
}
|
||||
}
|
||||
|
||||
onSaveError(error: JSONAPI.RequestError): void {
|
||||
const {message} = error.response.data;
|
||||
async onSaveError(error: ResponseError) {
|
||||
const {message} = (await error.response!.json()) as JsonapiErrorDoc;
|
||||
void showSnackbar(message, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import './global';
|
||||
import './jsx';
|
||||
import './modules';
|
||||
import './request';
|
||||
import './spraypaint';
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
export declare namespace JSONAPI {
|
||||
|
||||
export interface Trace {
|
||||
file: string;
|
||||
line: number;
|
||||
function: string;
|
||||
class: string;
|
||||
type: string;
|
||||
}
|
||||
|
||||
export interface Meta {
|
||||
exception: string;
|
||||
file: string;
|
||||
line: number;
|
||||
trace: Trace[];
|
||||
}
|
||||
|
||||
export interface Error {
|
||||
detail: string;
|
||||
meta: Meta;
|
||||
status: string;
|
||||
title: string;
|
||||
}
|
||||
|
||||
export interface RequestError {
|
||||
response: {
|
||||
// TODO: This is a temporary fix, new model library will be implemented later
|
||||
data: {
|
||||
errors: JSONAPI.Error[],
|
||||
message: string
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
export * from 'spraypaint';
|
||||
module 'spraypaint' {
|
||||
interface JsonapiErrorDoc {
|
||||
message: string;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue