commander/taskerrors/taskerror.go (83 lines of code) (raw):
package taskerrors
import (
"fmt"
)
const (
errCommanderCode = "CommanderError"
)
const (
errSubCodeSubmissionDuplicate = "SubmissionDuplicate"
errSubCodeSubmissionNotExists = "SubmissionNotExists"
errSubCodeSubmissionTypeInvalid = "SubmissionTypeInvalid"
errSubCodeCreatePipeError = "CreatePipeError"
errSubCodePrepareContentInvalid = "PrepareContentInvalid"
errSubCodeSubmissionRunError = "SubmissionRunError"
errSubCodeGeneralError = "GeneralError"
)
type TaskError struct {
ErrorCode string
ErrorSubCode string
ErrorMessage string
}
func (e *TaskError) Error() string {
return fmt.Sprintf("%s.%s: %s", e.ErrorCode, e.ErrorSubCode, e.ErrorMessage)
}
func (e *TaskError) String() string {
return fmt.Sprintf("%s.%s: %s", e.ErrorCode, e.ErrorSubCode, e.ErrorMessage)
}
func NewSubmissionDuplicateError() *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeSubmissionDuplicate,
ErrorMessage: "Submission duplicate",
}
}
func NewSubmissionNotExistsError() *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeSubmissionNotExists,
ErrorMessage: "Submission not exists",
}
}
func NewSubmissionTypeInvalidError() *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeSubmissionTypeInvalid,
ErrorMessage: "Submission type invalid",
}
}
func NewCreatePipeError(cause error) *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeCreatePipeError,
ErrorMessage: cause.Error(),
}
}
func NewPrepareContentInvalidError(cause error) *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodePrepareContentInvalid,
ErrorMessage: cause.Error(),
}
}
func NewSubmissionRunError(cause error) *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeSubmissionRunError,
ErrorMessage: cause.Error(),
}
}
func NewTaskError(errorCode, errorSubCode, errorMessage string) *TaskError {
return &TaskError{
ErrorCode: errorCode,
ErrorSubCode: errorSubCode,
ErrorMessage: errorMessage,
}
}
func NewGeneralError(cause error) *TaskError {
return &TaskError{
ErrorCode: errCommanderCode,
ErrorSubCode: errSubCodeGeneralError,
ErrorMessage: cause.Error(),
}
}