I have to create different error response for different front end (clients). Now I don't know how many clients will be there. I want to architect this scenario in proper way. I have a created a prototype like following. Is this correct way of doing? Please guide me to select proper design pattern for this scenario.
Interface
IClientErrorResponseBuilder {
getFailureResponse()
}
First Client
FirstClientErrorResponseBuilder implements IClientErrorResponseBuilder {
getFailureResponse(e: Exception) {
return {
code: e.code,
message: e.message,
}
}
}
Second Client
SecondClientErrorResponseBuilder implements IClientErrorResponseBuilder {
getFailureResponse(e: Exception ) {
return {
code: e.code,
message: e.message,
reason: "SOME REASON",
}
}
}
From the controllers
import IClientErrorResponseBuilder;
// When instantiated, it will resolve dependency for ErrorResponseBuilder
class FirstController {
private errorBuilder;
constructor(errorBuilder: IClientErrorResponseBuilder) {
this.errorBuilder = errorBuilder;
}
public handler() {
try {
// do the stuffs
}catch(e) {
// If error
this.errorBuilder.getFailureResponse(e);
}
}
}
// When instantiated, it will resolve dependency for ErrorResponseBuilder
class SecondController {
private errorBuilder;
constructor(errorBuilder: IClientErrorResponseBuilder) {
this.errorBuilder = errorBuilder;
}
public handler() {
try {
// do the stuffs
}catch(e) {
// If error
this.errorBuilder.getFailureResponse(e);
}
}
}