github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/runners/revert/rationalize.go (about)

     1  package revert
     2  
     3  import (
     4  	"errors"
     5  
     6  	"github.com/ActiveState/cli/internal/errs"
     7  	"github.com/ActiveState/cli/internal/locale"
     8  	"github.com/ActiveState/cli/pkg/platform/api/buildplanner/response"
     9  	"github.com/ActiveState/cli/pkg/platform/api/buildplanner/types"
    10  )
    11  
    12  func rationalizeError(err *error) {
    13  	if err == nil {
    14  		return
    15  	}
    16  
    17  	var revertCommitError *response.RevertCommitError
    18  
    19  	switch {
    20  	case errors.As(*err, &revertCommitError):
    21  		switch revertCommitError.Type {
    22  		case types.NotFoundErrorType, types.ForbiddenErrorType:
    23  			*err = errs.WrapUserFacing(*err,
    24  				locale.Tl("err_revert_not_found",
    25  					revertCommitError.Error(),
    26  				),
    27  				errs.SetInput(),
    28  				errs.SetTips(
    29  					locale.T("tip_private_project_auth"),
    30  				),
    31  			)
    32  		case types.NoChangeSinceLastCommitErrorType:
    33  			*err = errs.WrapUserFacing(*err,
    34  				locale.Tl("err_revert_no_change",
    35  					"Could not revert commit, no changes since last commit",
    36  				),
    37  				errs.SetInput(),
    38  			)
    39  		default:
    40  			*err = errs.WrapUserFacing(*err,
    41  				locale.Tl("err_revert_not_found",
    42  					"Could not revert commit, recieved error message: {{.V0}}",
    43  					revertCommitError.Error(),
    44  				),
    45  			)
    46  		}
    47  	}
    48  }