0

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);
        }
    }

}
Kiren S
  • 3,037
  • 7
  • 41
  • 69

0 Answers0