package exception import ( "fmt" "log/slog" ) // 12 chars len // :1=status // :3=service // :2=endpoint // :1=common/specific // :5=original type Builder struct { Status string Service string Endpoint string Type string Original string Error error } func (self *Builder) SetStatus(s string) *Builder { self.Status = s return self } func (self *Builder) SetService(s string) *Builder { self.Service = s return self } func (self *Builder) SetEndpoint(s string) *Builder { self.Endpoint = s return self } func (self *Builder) SetType(s string) *Builder { self.Type = s return self } func (self *Builder) SetOriginal(s string) *Builder { self.Original = s return self } func (self *Builder) SetError(e error) *Builder { self.Error = e return self } func (self *Builder) Build() string { errorCode := fmt.Sprintf("%s%s%s%s%s", self.Status, self.Service, self.Endpoint, self.Type, self.Original, ) if self.Error != nil { slog.Warn("Service exception", "id", errorCode, "err", self.Error) } return errorCode }