1.目的
レスポンスクラスハンドラーの作成方法を共有します。
2.ソース
/**
* リクエストの結果をハンドリングする.
* @param {Promiss} promiss
* @return reponse レスポンス => {success: XXX, data: XXX, message: XXX}
*/
export const handleResponse = async(promiss) => {
const response = await promiss;
if (response.success && !response.error) { //成功
return {
success: response.success,
message: response.message,
data: response.data
};
} else {
if (!response.error) { //警告
return {
success: response.success,
message: response.message,
data: response.data,
};
} else { //システムエラー
//システムエラーメッセージをスロー
console.error(response.message);
throw new Error(response.message);
}
}
}
/**
* エラーメッセージ取得
* @param error エラーオブジェクト
* @return Error messages
*/
export const getErrorMessage = (error) => {
// UI API DML, Apex and network errors
if (error.body && typeof error.body.message === 'string') {
return error.body.message;
}
// JS errors
else if (typeof error.message === 'string') {
return error.message;
}
// Unknown error shape so try HTTP status text
else if (error.statusText){
return error.statusText;
}
return '';
}