MOBILE-4670 error: Allow specifying error title in CoreError
parent
04727defa2
commit
dc7bea0b2e
|
@ -24,20 +24,29 @@ import { CoreErrorObject } from '@services/error-helper';
|
|||
*/
|
||||
export class CoreError extends Error {
|
||||
|
||||
title?: string;
|
||||
debug?: CoreErrorDebug;
|
||||
|
||||
constructor(message?: string, debug?: CoreErrorDebug) {
|
||||
constructor(message?: string, options: CoreErrorOptions = {}) {
|
||||
super(message);
|
||||
|
||||
// Fix prototype chain: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget
|
||||
this.name = new.target.name;
|
||||
Object.setPrototypeOf(this, new.target.prototype);
|
||||
|
||||
this.debug = debug;
|
||||
this.title = options.title;
|
||||
this.debug = options.debug;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export type CoreErrorOptions = {
|
||||
// Error title. By default, 'Error'.
|
||||
title?: string;
|
||||
// Debugging information.
|
||||
debug?: CoreErrorDebug;
|
||||
};
|
||||
|
||||
/**
|
||||
* Debug information of the error.
|
||||
*/
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { CoreError, CoreErrorDebug } from '@classes/errors/error';
|
||||
import { CoreError, CoreErrorOptions } from '@classes/errors/error';
|
||||
import { CoreUserSupportConfig } from '@features/user/classes/support/support-config';
|
||||
|
||||
/**
|
||||
|
@ -20,13 +20,11 @@ import { CoreUserSupportConfig } from '@features/user/classes/support/support-co
|
|||
*/
|
||||
export class CoreSiteError extends CoreError {
|
||||
|
||||
debug?: CoreErrorDebug;
|
||||
supportConfig?: CoreUserSupportConfig;
|
||||
|
||||
constructor(options: CoreSiteErrorOptions) {
|
||||
super(options.message);
|
||||
super(options.message, { title: options.title, debug: options.debug });
|
||||
|
||||
this.debug = options.debug;
|
||||
this.supportConfig = options.supportConfig;
|
||||
}
|
||||
|
||||
|
@ -43,12 +41,9 @@ export class CoreSiteError extends CoreError {
|
|||
|
||||
}
|
||||
|
||||
export type CoreSiteErrorOptions = {
|
||||
export type CoreSiteErrorOptions = CoreErrorOptions & {
|
||||
message: string;
|
||||
|
||||
// Debugging information.
|
||||
debug?: CoreErrorDebug;
|
||||
|
||||
// Configuration to use to contact site support. If this attribute is present, it means
|
||||
// that the error warrants contacting support.
|
||||
supportConfig?: CoreUserSupportConfig;
|
||||
|
|
|
@ -286,10 +286,10 @@ export class CoreSitesProvider {
|
|||
siteUrl = CoreUrl.formatURL(siteUrl);
|
||||
|
||||
if (!CoreUrl.isHttpURL(siteUrl)) {
|
||||
throw new CoreError(Translate.instant('core.login.invalidsite'), {
|
||||
throw new CoreError(Translate.instant('core.login.invalidsite'), { debug: {
|
||||
code: 'invalidprotocol',
|
||||
details: `URL contains an invalid protocol when checking site.<br><br>Origin: ${origin}.<br><br>URL: ${siteUrl}.`,
|
||||
});
|
||||
} });
|
||||
}
|
||||
|
||||
if (!CoreNetwork.isOnline()) {
|
||||
|
|
|
@ -52,10 +52,10 @@ export class CoreCustomURLSchemesProvider {
|
|||
* @returns Error.
|
||||
*/
|
||||
protected createInvalidSchemeError(url: string, data?: CoreCustomURLSchemesParams): CoreCustomURLSchemesHandleError {
|
||||
const defaultError = new CoreError(Translate.instant('core.login.invalidsite'), {
|
||||
const defaultError = new CoreError(Translate.instant('core.login.invalidsite'), { debug: {
|
||||
code: 'invalidurlscheme',
|
||||
details: `Error when treating a URL scheme, it seems the URL is not valid.<br><br>URL: ${url}`,
|
||||
});
|
||||
} });
|
||||
|
||||
return new CoreCustomURLSchemesHandleError(defaultError, data);
|
||||
}
|
||||
|
@ -399,11 +399,11 @@ export class CoreCustomURLSchemesProvider {
|
|||
// Error decoding the parameter.
|
||||
this.logger.error('Error decoding parameter received for login SSO');
|
||||
|
||||
throw new CoreCustomURLSchemesHandleError(new CoreError(Translate.instant('core.login.invalidsite'), {
|
||||
throw new CoreCustomURLSchemesHandleError(new CoreError(Translate.instant('core.login.invalidsite'), { debug: {
|
||||
code: 'errordecodingparameter',
|
||||
details: `Error when trying to decode base 64 string.<br><br>URL: ${originalUrl}<br><br>Text to decode: ${url}` +
|
||||
`<br><br>Error: ${CoreErrorHelper.getErrorMessageFromError(err)}`,
|
||||
}));
|
||||
} }));
|
||||
}
|
||||
|
||||
const data: CoreCustomURLSchemesParams = await CoreLoginHelper.validateBrowserSSOLogin(url);
|
||||
|
@ -529,10 +529,10 @@ export class CoreCustomURLSchemesProvider {
|
|||
CoreLoginHelper.treatUserTokenError(error.data.siteUrl, <CoreWSError> error.error);
|
||||
CoreSites.logout();
|
||||
} else {
|
||||
CoreDomUtils.showErrorModal(error.error ?? new CoreError(Translate.instant('core.login.invalidsite'), {
|
||||
CoreDomUtils.showErrorModal(error.error ?? new CoreError(Translate.instant('core.login.invalidsite'), { debug: {
|
||||
code: 'unknownerror',
|
||||
details: 'Unknown error when treating a URL scheme.',
|
||||
}));
|
||||
} }));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue