Merge pull request #537 from sgotti/errors_add_withapierrormsgf

errors: add WithAPIErrorMsgf
This commit is contained in:
Simone Gotti 2024-10-24 17:12:18 +02:00 committed by GitHub
commit 0887406f1b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
33 changed files with 290 additions and 281 deletions

View File

@ -51,7 +51,7 @@ func NewActionHandler(log zerolog.Logger, d *db.DB, lf lock.LockFactory) *Action
func (h *ActionHandler) GetProjectGroupByPath(tx *sql.Tx, projectGroupPath string) (*types.ProjectGroup, error) {
parts := strings.Split(projectGroupPath, "/")
if len(parts) < 2 {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project group path: %q", projectGroupPath), serrors.InvalidPath())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project group path: %q", projectGroupPath), serrors.InvalidPath())
}
var parentID string
switch parts[0] {
@ -61,7 +61,7 @@ func (h *ActionHandler) GetProjectGroupByPath(tx *sql.Tx, projectGroupPath strin
return nil, errors.Wrapf(err, "failed to get organization %q", parts[1])
}
if org == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("organization with name %q doesn't exist", parts[1]), serrors.OrganizationDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("organization with name %q doesn't exist", parts[1]), serrors.OrganizationDoesNotExist())
}
parentID = org.ID
case "user":
@ -70,11 +70,11 @@ func (h *ActionHandler) GetProjectGroupByPath(tx *sql.Tx, projectGroupPath strin
return nil, errors.Wrapf(err, "failed to get user %q", parts[1])
}
if user == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user with name %q doesn't exist", parts[1]), serrors.UserDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user with name %q doesn't exist", parts[1]), serrors.UserDoesNotExist())
}
parentID = user.ID
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project group path: %q", projectGroupPath), serrors.InvalidPath())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project group path: %q", projectGroupPath), serrors.InvalidPath())
}
var projectGroup *types.ProjectGroup
@ -96,7 +96,7 @@ func (h *ActionHandler) GetProjectGroupByPath(tx *sql.Tx, projectGroupPath strin
func (h *ActionHandler) GetProjectByPath(tx *sql.Tx, projectPath string) (*types.Project, error) {
if len(strings.Split(projectPath, "/")) < 3 {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project path: %q", projectPath), serrors.InvalidPath())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project path: %q", projectPath), serrors.InvalidPath())
}
projectGroupPath := path.Dir(projectPath)
@ -153,7 +153,7 @@ func (h *ActionHandler) GetProjectPath(tx *sql.Tx, project *types.Project) (stri
return "", errors.WithStack(err)
}
if pgroup == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group %q for project %q doesn't exist", project.Parent.ID, project.ID), serrors.ParentProjectGroupDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group %q for project %q doesn't exist", project.Parent.ID, project.ID), serrors.ParentProjectGroupDoesNotExist())
}
p, err := h.GetProjectGroupPath(tx, pgroup)
if err != nil {
@ -168,7 +168,7 @@ func (h *ActionHandler) GetProjectPath(tx *sql.Tx, project *types.Project) (stri
func (h *ActionHandler) GetProjectGroupByRef(tx *sql.Tx, projectGroupRef string) (*types.ProjectGroup, error) {
groupRef, err := common.ParsePathRef(projectGroupRef)
if err != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project group ref: %q", projectGroupRef), serrors.InvalidRef())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project group ref: %q", projectGroupRef), serrors.InvalidRef())
}
var group *types.ProjectGroup
@ -184,7 +184,7 @@ func (h *ActionHandler) GetProjectGroupByRef(tx *sql.Tx, projectGroupRef string)
func (h *ActionHandler) GetProjectByRef(tx *sql.Tx, projectRef string) (*types.Project, error) {
projectRefType, err := common.ParsePathRef(projectRef)
if err != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project ref: %q", projectRef), serrors.InvalidRef())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project ref: %q", projectRef), serrors.InvalidRef())
}
var project *types.Project
@ -200,7 +200,7 @@ func (h *ActionHandler) GetProjectByRef(tx *sql.Tx, projectRef string) (*types.P
func (h *ActionHandler) GetOrgByRef(tx *sql.Tx, orgRef string) (*types.Organization, error) {
refType, err := common.ParseNameRef(orgRef)
if err != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong organization ref: %q", orgRef), serrors.InvalidRef())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong organization ref: %q", orgRef), serrors.InvalidRef())
}
var org *types.Organization
@ -216,7 +216,7 @@ func (h *ActionHandler) GetOrgByRef(tx *sql.Tx, orgRef string) (*types.Organizat
func (h *ActionHandler) GetUserByRef(tx *sql.Tx, userRef string) (*types.User, error) {
refType, err := common.ParseNameRef(userRef)
if err != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong user ref: %q", userRef), serrors.InvalidRef())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong user ref: %q", userRef), serrors.InvalidRef())
}
var user *types.User
@ -238,7 +238,7 @@ func (h *ActionHandler) GetPath(tx *sql.Tx, objectKind types.ObjectKind, id stri
return "", errors.WithStack(err)
}
if projectGroup == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("projectgroup with id %q doesn't exist", id), serrors.ProjectGroupDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("projectgroup with id %q doesn't exist", id), serrors.ProjectGroupDoesNotExist())
}
p, err = h.GetProjectGroupPath(tx, projectGroup)
if err != nil {
@ -250,7 +250,7 @@ func (h *ActionHandler) GetPath(tx *sql.Tx, objectKind types.ObjectKind, id stri
return "", errors.WithStack(err)
}
if project == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project with id %q doesn't exist", id), serrors.ProjectDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project with id %q doesn't exist", id), serrors.ProjectDoesNotExist())
}
p, err = h.GetProjectPath(tx, project)
if err != nil {
@ -262,7 +262,7 @@ func (h *ActionHandler) GetPath(tx *sql.Tx, objectKind types.ObjectKind, id stri
return "", errors.Wrapf(err, "failed to get organization %q", id)
}
if org == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("organization with id %q doesn't exist", id), serrors.OrganizationDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("organization with id %q doesn't exist", id), serrors.OrganizationDoesNotExist())
}
p = path.Join("org", org.Name)
case types.ObjectKindUser:
@ -271,7 +271,7 @@ func (h *ActionHandler) GetPath(tx *sql.Tx, objectKind types.ObjectKind, id stri
return "", errors.Wrapf(err, "failed to get user %q", id)
}
if user == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user with id %q doesn't exist", id), serrors.UserDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user with id %q doesn't exist", id), serrors.UserDoesNotExist())
}
p = path.Join("user", user.Name)
default:
@ -308,7 +308,7 @@ func (h *ActionHandler) GetProjectGroupHierarchy(tx *sql.Tx, projectGroup *types
return nil, errors.Wrapf(err, "failed to get project group %q", projectGroupID)
}
if projectGroup == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupID), serrors.ProjectGroupDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupID), serrors.ProjectGroupDoesNotExist())
}
elements = append([]*hierarchyElement{
{
@ -342,7 +342,7 @@ func (h *ActionHandler) GetProjectOwnerID(tx *sql.Tx, project *types.Project) (t
return "", "", errors.WithStack(err)
}
if pgroup == nil {
return "", "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group %q for project %q doesn't exist", project.Parent.ID, project.ID), serrors.ParentProjectGroupDoesNotExist())
return "", "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group %q for project %q doesn't exist", project.Parent.ID, project.ID), serrors.ParentProjectGroupDoesNotExist())
}
return h.GetProjectGroupOwnerID(tx, pgroup)
}
@ -355,7 +355,7 @@ func (h *ActionHandler) ResolveObjectID(tx *sql.Tx, objectKind types.ObjectKind,
return "", errors.WithStack(err)
}
if group == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group with ref %q doesn't exists", ref), serrors.ProjectGroupDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group with ref %q doesn't exists", ref), serrors.ProjectGroupDoesNotExist())
}
return group.ID, nil
@ -365,7 +365,7 @@ func (h *ActionHandler) ResolveObjectID(tx *sql.Tx, objectKind types.ObjectKind,
return "", errors.WithStack(err)
}
if project == nil {
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project with ref %q doesn't exists", ref), serrors.ProjectDoesNotExist())
return "", util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project with ref %q doesn't exists", ref), serrors.ProjectDoesNotExist())
}
return project.ID, nil

View File

@ -70,7 +70,7 @@ func (h *ActionHandler) GetOrgMembers(ctx context.Context, req *GetOrgMembersReq
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exist", req.OrgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exist", req.OrgRef), serrors.OrganizationDoesNotExist())
}
dbOrgMembers, err = h.d.GetOrgMembers(tx, org.ID, req.StartUserName, limit, req.SortDirection)
@ -111,7 +111,7 @@ func (h *ActionHandler) GetOrg(ctx context.Context, orgRef string) (*types.Organ
}
if org == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
}
return org, nil
@ -181,7 +181,7 @@ func (h *ActionHandler) CreateOrg(ctx context.Context, req *CreateOrgRequest) (*
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("organization name required"), serrors.InvalidOrganizationName())
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid organization name %q", req.Name), serrors.InvalidOrganizationName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid organization name %q", req.Name), serrors.InvalidOrganizationName())
}
if !types.IsValidVisibility(req.Visibility) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid organization visibility"), serrors.InvalidVisibility())
@ -196,7 +196,7 @@ func (h *ActionHandler) CreateOrg(ctx context.Context, req *CreateOrgRequest) (*
return errors.WithStack(err)
}
if o != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("org %q already exists", o.Name), serrors.OrganizationAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("org %q already exists", o.Name), serrors.OrganizationAlreadyExists())
}
if req.CreatorUserID != "" {
@ -205,7 +205,7 @@ func (h *ActionHandler) CreateOrg(ctx context.Context, req *CreateOrgRequest) (*
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("creator user %q doesn't exist", req.CreatorUserID), serrors.CreatorUserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("creator user %q doesn't exist", req.CreatorUserID), serrors.CreatorUserDoesNotExist())
}
}
@ -270,7 +270,7 @@ func (h *ActionHandler) UpdateOrg(ctx context.Context, orgRef string, req *Updat
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q not exists", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q not exists", orgRef), serrors.OrganizationDoesNotExist())
}
org.Visibility = req.Visibility
@ -299,7 +299,7 @@ func (h *ActionHandler) DeleteOrg(ctx context.Context, orgRef string) error {
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
}
if err := h.d.DeleteOrgMembersByOrgID(tx, org.ID); err != nil {
@ -351,7 +351,7 @@ func (h *ActionHandler) DeleteOrg(ctx context.Context, orgRef string) error {
// TODO(sgotti) handle invitation when implemented
func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string, role types.MemberRole) (*types.OrganizationMember, error) {
if !types.IsValidMemberRole(role) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid role %q", role), serrors.InvalidRole())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid role %q", role), serrors.InvalidRole())
}
var orgmember *types.OrganizationMember
@ -362,7 +362,7 @@ func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
}
// check existing user
user, err := h.GetUserByRef(tx, userRef)
@ -370,7 +370,7 @@ func (h *ActionHandler) AddOrgMember(ctx context.Context, orgRef, userRef string
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
}
// fetch org member if it already exist
@ -426,7 +426,7 @@ func (h *ActionHandler) RemoveOrgMember(ctx context.Context, orgRef, userRef str
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
}
// check existing user
user, err := h.GetUserByRef(tx, userRef)
@ -434,7 +434,7 @@ func (h *ActionHandler) RemoveOrgMember(ctx context.Context, orgRef, userRef str
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
}
// check that org member exists
@ -443,7 +443,7 @@ func (h *ActionHandler) RemoveOrgMember(ctx context.Context, orgRef, userRef str
return errors.WithStack(err)
}
if orgmember == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("orgmember for org %q, user %q doesn't exists", orgRef, userRef), serrors.OrgMemberDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("orgmember for org %q, user %q doesn't exists", orgRef, userRef), serrors.OrgMemberDoesNotExist())
}
if err := h.d.DeleteOrganizationMember(tx, orgmember.ID); err != nil {
@ -467,7 +467,7 @@ func (h *ActionHandler) GetOrgInvitations(ctx context.Context, orgRef string) ([
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
}
orgInvitations, err = h.d.GetOrgInvitations(tx, org.ID)
@ -493,7 +493,7 @@ func (h *ActionHandler) GetOrgInvitationByUserRef(ctx context.Context, orgRef, u
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("organization %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("organization %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
}
// check existing user
user, err := h.GetUserByRef(tx, userRef)
@ -501,7 +501,7 @@ func (h *ActionHandler) GetOrgInvitationByUserRef(ctx context.Context, orgRef, u
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
}
orgInvitation, err = h.d.GetOrgInvitationByOrgUserID(tx, org.ID, user.ID)
@ -516,7 +516,7 @@ func (h *ActionHandler) GetOrgInvitationByUserRef(ctx context.Context, orgRef, u
}
if orgInvitation == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("invitation for org %q user %q doesn't exist", orgRef, userRef), serrors.InvitationDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("invitation for org %q user %q doesn't exist", orgRef, userRef), serrors.InvitationDoesNotExist())
}
return orgInvitation, nil
@ -548,7 +548,7 @@ func (h *ActionHandler) CreateOrgInvitation(ctx context.Context, req *CreateOrgI
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("organization %q doesn't exist", req.OrganizationRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("organization %q doesn't exist", req.OrganizationRef), serrors.OrganizationDoesNotExist())
}
user, err := h.GetUserByRef(tx, req.UserRef)
@ -556,7 +556,7 @@ func (h *ActionHandler) CreateOrgInvitation(ctx context.Context, req *CreateOrgI
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
}
// check duplicate org invitation
@ -593,7 +593,7 @@ func (h *ActionHandler) DeleteOrgInvitation(ctx context.Context, orgRef string,
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exists", orgRef), serrors.OrganizationDoesNotExist())
}
// check existing user
user, err := h.GetUserByRef(tx, userRef)
@ -601,7 +601,7 @@ func (h *ActionHandler) DeleteOrgInvitation(ctx context.Context, orgRef string,
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exists", userRef), serrors.UserDoesNotExist())
}
// check org invitation exists
@ -610,7 +610,7 @@ func (h *ActionHandler) DeleteOrgInvitation(ctx context.Context, orgRef string,
return errors.WithStack(err)
}
if orgInvitation == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("invitation for org %q, user %q doesn't exists", orgRef, userRef), serrors.InvitationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("invitation for org %q, user %q doesn't exists", orgRef, userRef), serrors.InvitationDoesNotExist())
}
if err := h.d.DeleteOrgInvitation(tx, orgInvitation.ID); err != nil {
@ -643,7 +643,7 @@ func (h *ActionHandler) OrgInvitationAction(ctx context.Context, req *OrgInvitat
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exists", req.OrgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exists", req.OrgRef), serrors.OrganizationDoesNotExist())
}
// check existing user
user, err := h.GetUserByRef(tx, req.UserRef)
@ -651,7 +651,7 @@ func (h *ActionHandler) OrgInvitationAction(ctx context.Context, req *OrgInvitat
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exists", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exists", req.UserRef), serrors.UserDoesNotExist())
}
// check org invitation exists
@ -660,7 +660,7 @@ func (h *ActionHandler) OrgInvitationAction(ctx context.Context, req *OrgInvitat
return errors.WithStack(err)
}
if orgInvitation == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("invitation for org %q, user %q doesn't exists", req.OrgRef, req.UserRef), serrors.InvitationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("invitation for org %q, user %q doesn't exists", req.OrgRef, req.UserRef), serrors.InvitationDoesNotExist())
}
if req.Action == csapitypes.Accept {

View File

@ -70,19 +70,19 @@ func (h *ActionHandler) ValidateProjectReq(ctx context.Context, req *CreateUpdat
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project name required"), serrors.InvalidProjectName())
}
if !util.ValidateName(req.Name) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project name %q", req.Name), serrors.InvalidProjectName())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project name %q", req.Name), serrors.InvalidProjectName())
}
if req.Parent.ID == "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project parent id required"))
}
if req.Parent.Kind != types.ObjectKindProjectGroup {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project parent kind %q", req.Parent.Kind))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project parent kind %q", req.Parent.Kind))
}
if !types.IsValidVisibility(req.Visibility) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project visibility"))
}
if !types.IsValidRemoteRepositoryConfigType(req.RemoteRepositoryConfigType) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project remote repository config type %q", req.RemoteRepositoryConfigType))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project remote repository config type %q", req.RemoteRepositoryConfigType))
}
if req.RemoteRepositoryConfigType == types.RemoteRepositoryConfigTypeRemoteSource {
if req.RemoteSourceID == "" {
@ -118,7 +118,7 @@ func (h *ActionHandler) GetProject(ctx context.Context, projectRef string) (*Get
}
if project == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project %q doesn't exist", projectRef), serrors.ProjectDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project %q doesn't exist", projectRef), serrors.ProjectDoesNotExist())
}
projectDynamicData, err = h.projectDynamicData(tx, project)
@ -166,7 +166,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateUpdateProj
return errors.WithStack(err)
}
if group == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
}
req.Parent.ID = group.ID
@ -190,7 +190,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateUpdateProj
return errors.WithStack(err)
}
if p != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", p.Name, pp), serrors.ProjectAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", p.Name, pp), serrors.ProjectAlreadyExists())
}
if req.RemoteRepositoryConfigType == types.RemoteRepositoryConfigTypeRemoteSource {
@ -199,7 +199,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateUpdateProj
return errors.Wrapf(err, "failed to get user with linked account id %q", req.LinkedAccountID)
}
if la == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account id %q doesn't exist", req.LinkedAccountID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account id %q doesn't exist", req.LinkedAccountID))
}
user, err := h.d.GetUserByID(tx, la.UserID)
@ -207,12 +207,12 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateUpdateProj
return errors.Wrapf(err, "failed to get user with linked account id %q", req.LinkedAccountID)
}
if user == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user for linked account %q doesn't exist", req.LinkedAccountID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user for linked account %q doesn't exist", req.LinkedAccountID))
}
// check that the linked account matches the remote source
if la.RemoteSourceID != req.RemoteSourceID {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account id %q remote source %q different than project remote source %q", req.LinkedAccountID, la.RemoteSourceID, req.RemoteSourceID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account id %q remote source %q different than project remote source %q", req.LinkedAccountID, la.RemoteSourceID, req.RemoteSourceID))
}
}
@ -269,7 +269,7 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.WithStack(err)
}
if project == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project with ref %q doesn't exist", curProjectRef), serrors.ProjectDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project with ref %q doesn't exist", curProjectRef), serrors.ProjectDoesNotExist())
}
// check parent project group exists
@ -278,7 +278,7 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.WithStack(err)
}
if group == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
}
req.Parent.ID = group.ID
@ -303,7 +303,7 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.WithStack(err)
}
if ap != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", req.Name, pp), serrors.ProjectAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", req.Name, pp), serrors.ProjectAlreadyExists())
}
}
@ -314,7 +314,7 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.WithStack(err)
}
if curGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group with id %q doesn't exist", project.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group with id %q doesn't exist", project.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
}
}
@ -324,7 +324,7 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.Wrapf(err, "failed to get user with linked account id %q", req.LinkedAccountID)
}
if la == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account id %q doesn't exist", req.LinkedAccountID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account id %q doesn't exist", req.LinkedAccountID))
}
user, err := h.d.GetUserByID(tx, la.UserID)
@ -332,12 +332,12 @@ func (h *ActionHandler) UpdateProject(ctx context.Context, curProjectRef string,
return errors.Wrapf(err, "failed to get user with linked account id %q", req.LinkedAccountID)
}
if user == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user for linked account %q doesn't exist", req.LinkedAccountID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user for linked account %q doesn't exist", req.LinkedAccountID))
}
// check that the linked account matches the remote source
if la.RemoteSourceID != req.RemoteSourceID {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account id %q remote source %q different than project remote source %q", req.LinkedAccountID, la.RemoteSourceID, req.RemoteSourceID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account id %q remote source %q different than project remote source %q", req.LinkedAccountID, la.RemoteSourceID, req.RemoteSourceID))
}
}
@ -382,7 +382,7 @@ func (h *ActionHandler) DeleteProject(ctx context.Context, projectRef string) er
return errors.WithStack(err)
}
if project == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project %q doesn't exist", projectRef), serrors.ProjectDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project %q doesn't exist", projectRef), serrors.ProjectDoesNotExist())
}
// TODO(sgotti) implement childs garbage collection

View File

@ -81,7 +81,7 @@ func (h *ActionHandler) GetProjectGroup(ctx context.Context, projectGroupRef str
}
if projectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
}
projectGroupDynamicData, err = h.projectGroupDynamicData(tx, projectGroup)
@ -114,7 +114,7 @@ func (h *ActionHandler) GetProjectGroupSubgroups(ctx context.Context, projectGro
}
if projectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
}
projectGroups, err = h.d.GetProjectGroupSubgroups(tx, projectGroup.ID)
@ -158,7 +158,7 @@ func (h *ActionHandler) GetProjectGroupProjects(ctx context.Context, projectGrou
}
if projectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
}
projects, err = h.d.GetProjectGroupProjects(tx, projectGroup.ID)
@ -190,7 +190,7 @@ func (h *ActionHandler) ValidateProjectGroupReq(ctx context.Context, req *Create
if req.Parent.Kind != types.ObjectKindProjectGroup &&
req.Parent.Kind != types.ObjectKindOrg &&
req.Parent.Kind != types.ObjectKindUser {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project group parent kind %q", req.Parent.Kind))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project group parent kind %q", req.Parent.Kind))
}
if req.Parent.ID == "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project group parent id required"))
@ -230,7 +230,7 @@ func (h *ActionHandler) CreateProjectGroup(ctx context.Context, req *CreateUpdat
// We cannot create a root project group for org/user since it's created on user/org creation
if req.Parent.Kind != types.ObjectKindProjectGroup {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong project group parent kind %q", req.Parent.Kind))
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong project group parent kind %q", req.Parent.Kind))
}
var projectGroup *types.ProjectGroup
@ -241,7 +241,7 @@ func (h *ActionHandler) CreateProjectGroup(ctx context.Context, req *CreateUpdat
return errors.WithStack(err)
}
if parentProjectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
}
// TODO(sgotti) now we are doing a very ugly thing setting the request
// projectgroup parent ID that can be both an ID or a ref. Then we are fixing
@ -260,7 +260,7 @@ func (h *ActionHandler) CreateProjectGroup(ctx context.Context, req *CreateUpdat
return errors.WithStack(err)
}
if tpg != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project group with name %q, path %q already exists", req.Name, pp), serrors.ProjectGroupAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project group with name %q, path %q already exists", req.Name, pp), serrors.ProjectGroupAlreadyExists())
}
projectGroup = types.NewProjectGroup(tx)
@ -301,7 +301,7 @@ func (h *ActionHandler) UpdateProjectGroup(ctx context.Context, curProjectGroupR
return errors.WithStack(err)
}
if projectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group with ref %q doesn't exist", curProjectGroupRef), serrors.ProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group with ref %q doesn't exist", curProjectGroupRef), serrors.ProjectGroupDoesNotExist())
}
if projectGroup.Parent.Kind != req.Parent.Kind {
@ -326,7 +326,7 @@ func (h *ActionHandler) UpdateProjectGroup(ctx context.Context, curProjectGroupR
return errors.WithStack(err)
}
if group == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("parent project group with id %q doesn't exist", req.Parent.ID), serrors.ParentProjectGroupDoesNotExist())
}
// TODO(sgotti) now we are doing a very ugly thing setting the request
// projectgroup parent ID that can be both an ID or a ref. Then we are fixing
@ -353,7 +353,7 @@ func (h *ActionHandler) UpdateProjectGroup(ctx context.Context, curProjectGroupR
return errors.WithStack(err)
}
if ap != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project group with name %q, path %q already exists", req.Name, pgp), serrors.ProjectGroupAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project group with name %q, path %q already exists", req.Name, pgp), serrors.ProjectGroupAlreadyExists())
}
// Cannot move inside itself or a child project group
if strings.HasPrefix(pgp, curPGP+"/") {
@ -392,7 +392,7 @@ func (h *ActionHandler) DeleteProjectGroup(ctx context.Context, projectGroupRef
return errors.WithStack(err)
}
if projectGroup == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
}
// cannot delete root project group
@ -424,7 +424,7 @@ func (h *ActionHandler) getAllProjectGroupSubgroups(tx *sql.Tx, projectGroupRef
}
if projectGroup == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("project group %q doesn't exist", projectGroupRef), serrors.ProjectGroupDoesNotExist())
}
projectGroups, err := h.d.GetProjectGroupSubgroups(tx, projectGroup.ID)

View File

@ -37,7 +37,7 @@ func (h *ActionHandler) GetRemoteSource(ctx context.Context, remoteSourceRef str
}
if remoteSource == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remotesource %q doesn't exist", remoteSourceRef), serrors.RemoteSourceDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remotesource %q doesn't exist", remoteSourceRef), serrors.RemoteSourceDoesNotExist())
}
return remoteSource, nil
@ -94,7 +94,7 @@ func (h *ActionHandler) ValidateRemoteSourceReq(ctx context.Context, req *Create
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource name required"), serrors.InvalidRemoteSourceName())
}
if !util.ValidateName(req.Name) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid remotesource name %q", req.Name), serrors.InvalidRemoteSourceName())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid remotesource name %q", req.Name), serrors.InvalidRemoteSourceName())
}
if req.APIURL == "" {
@ -109,14 +109,14 @@ func (h *ActionHandler) ValidateRemoteSourceReq(ctx context.Context, req *Create
// validate if the remotesource type supports the required auth type
if !types.SourceSupportsAuthType(types.RemoteSourceType(req.Type), types.RemoteSourceAuthType(req.AuthType)) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource type %q doesn't support auth type %q", req.Type, req.AuthType), serrors.InvalidRemoteSourceAuthType())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource type %q doesn't support auth type %q", req.Type, req.AuthType), serrors.InvalidRemoteSourceAuthType())
}
if req.AuthType == types.RemoteSourceAuthTypeOauth2 {
if req.Oauth2ClientID == "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource oauth2clientid required for auth type %q", types.RemoteSourceAuthTypeOauth2), serrors.InvalidOauth2ClientID())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource oauth2clientid required for auth type %q", types.RemoteSourceAuthTypeOauth2), serrors.InvalidOauth2ClientID())
}
if req.Oauth2ClientSecret == "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource oauth2clientsecret required for auth type %q", types.RemoteSourceAuthTypeOauth2), serrors.InvalidOauth2ClientSecret())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource oauth2clientsecret required for auth type %q", types.RemoteSourceAuthTypeOauth2), serrors.InvalidOauth2ClientSecret())
}
}
@ -150,7 +150,7 @@ func (h *ActionHandler) CreateRemoteSource(ctx context.Context, req *CreateUpdat
return errors.WithStack(err)
}
if curRemoteSource != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource %q already exists", req.Name), serrors.RemoteSourceAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource %q already exists", req.Name), serrors.RemoteSourceAlreadyExists())
}
remoteSource = types.NewRemoteSource(tx)
@ -194,7 +194,7 @@ func (h *ActionHandler) UpdateRemoteSource(ctx context.Context, remoteSourceRef
return errors.WithStack(err)
}
if remoteSource == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remotesource with ref %q doesn't exist", remoteSourceRef), serrors.RemoteSourceDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remotesource with ref %q doesn't exist", remoteSourceRef), serrors.RemoteSourceDoesNotExist())
}
if remoteSource.Name != req.Name {
@ -204,7 +204,7 @@ func (h *ActionHandler) UpdateRemoteSource(ctx context.Context, remoteSourceRef
return errors.WithStack(err)
}
if u != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource %q already exists", u.Name), serrors.RemoteSourceAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource %q already exists", u.Name), serrors.RemoteSourceAlreadyExists())
}
}
@ -241,7 +241,7 @@ func (h *ActionHandler) DeleteRemoteSource(ctx context.Context, remoteSourceName
return errors.WithStack(err)
}
if remoteSource == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remotesource %q doesn't exist", remoteSourceName), serrors.RemoteSourceDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remotesource %q doesn't exist", remoteSourceName), serrors.RemoteSourceDoesNotExist())
}
if err := h.d.DeleteRemoteSource(tx, remoteSource.ID); err != nil {
@ -276,7 +276,7 @@ func (h *ActionHandler) GetLinkedAccounts(ctx context.Context, req *GetLinkedAcc
return errors.WithStack(err)
}
if la == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account with remote user %q for remote source %q token doesn't exist", remoteUserID, remoteSourceID), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account with remote user %q for remote source %q token doesn't exist", remoteUserID, remoteSourceID), serrors.LinkedAccountDoesNotExist())
}
linkedAccounts = []*types.LinkedAccount{la}

View File

@ -111,7 +111,7 @@ func (h *ActionHandler) GetSecret(ctx context.Context, secretID string) (*types.
}
if secret == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("secret %q doesn't exist", secretID), serrors.SecretDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("secret %q doesn't exist", secretID), serrors.SecretDoesNotExist())
}
return secret, nil
@ -166,10 +166,10 @@ func (h *ActionHandler) ValidateSecretReq(ctx context.Context, req *CreateUpdate
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("secret name required"), serrors.InvalidSecretName())
}
if !util.ValidateName(req.Name) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid secret name %q", req.Name), serrors.InvalidSecretName())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid secret name %q", req.Name), serrors.InvalidSecretName())
}
if req.Type != types.SecretTypeInternal {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid secret type %q", req.Type), serrors.InvalidSecretType())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid secret type %q", req.Type), serrors.InvalidSecretType())
}
switch req.Type {
case types.SecretTypeInternal:
@ -184,7 +184,7 @@ func (h *ActionHandler) ValidateSecretReq(ctx context.Context, req *CreateUpdate
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("secret parentid required"))
}
if req.Parent.Kind != types.ObjectKindProject && req.Parent.Kind != types.ObjectKindProjectGroup {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid secret parent kind %q", req.Parent.Kind))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid secret parent kind %q", req.Parent.Kind))
}
return nil
@ -219,7 +219,7 @@ func (h *ActionHandler) CreateSecret(ctx context.Context, req *CreateUpdateSecre
return errors.WithStack(err)
}
if s != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("secret with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.SecretAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("secret with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.SecretAlreadyExists())
}
secret = types.NewSecret(tx)
@ -263,7 +263,7 @@ func (h *ActionHandler) UpdateSecret(ctx context.Context, curSecretName string,
return errors.WithStack(err)
}
if secret == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("secret with name %q for %s with id %q doesn't exists", curSecretName, req.Parent.Kind, req.Parent.ID), serrors.SecretDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("secret with name %q for %s with id %q doesn't exists", curSecretName, req.Parent.Kind, req.Parent.ID), serrors.SecretDoesNotExist())
}
if secret.Name != req.Name {
@ -273,7 +273,7 @@ func (h *ActionHandler) UpdateSecret(ctx context.Context, curSecretName string,
return errors.WithStack(err)
}
if s != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("secret with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.SecretAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("secret with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.SecretAlreadyExists())
}
}
@ -311,7 +311,7 @@ func (h *ActionHandler) DeleteSecret(ctx context.Context, parentKind types.Objec
return errors.WithStack(err)
}
if secret == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("secret with name %q doesn't exist", secretName), serrors.SecretDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("secret with name %q doesn't exist", secretName), serrors.SecretDoesNotExist())
}
if err := h.d.DeleteSecret(tx, secret.ID); err != nil {

View File

@ -67,7 +67,7 @@ func (h *ActionHandler) UserQuery(ctx context.Context, req *UserQueryRequest) (*
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user with linked account %q doesn't exist", req.LinkedAccountID), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user with linked account %q doesn't exist", req.LinkedAccountID), serrors.UserDoesNotExist())
}
return nil
})
@ -82,7 +82,7 @@ func (h *ActionHandler) UserQuery(ctx context.Context, req *UserQueryRequest) (*
return errors.WithStack(err)
}
if la == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account with remote user %q for remote source %q doesn't exist", req.RemoteUserID, req.RemoteSourceID), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account with remote user %q for remote source %q doesn't exist", req.RemoteUserID, req.RemoteSourceID), serrors.LinkedAccountDoesNotExist())
}
user, err = h.GetUserByRef(tx, la.UserID)
@ -90,7 +90,7 @@ func (h *ActionHandler) UserQuery(ctx context.Context, req *UserQueryRequest) (*
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user with remote user %q for remote source %q doesn't exist", req.RemoteUserID, req.RemoteSourceID), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user with remote user %q for remote source %q doesn't exist", req.RemoteUserID, req.RemoteSourceID), serrors.UserDoesNotExist())
}
return nil
})
@ -117,7 +117,7 @@ func (h *ActionHandler) GetUser(ctx context.Context, userRef string) (*types.Use
}
if user == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
return user, nil
@ -180,7 +180,7 @@ func (h *ActionHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user name required"), serrors.InvalidUserName())
}
if !util.ValidateName(req.UserName) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid user name %q", req.UserName), serrors.InvalidUserName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid user name %q", req.UserName), serrors.InvalidUserName())
}
var user *types.User
@ -193,7 +193,7 @@ func (h *ActionHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
return errors.WithStack(err)
}
if u != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user with name %q already exists", u.Name), serrors.UserAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user with name %q already exists", u.Name), serrors.UserAlreadyExists())
}
var rs *types.RemoteSource
@ -203,14 +203,14 @@ func (h *ActionHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
return errors.WithStack(err)
}
if rs == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remote source %q doesn't exist", req.CreateUserLARequest.RemoteSourceName), serrors.RemoteSourceDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remote source %q doesn't exist", req.CreateUserLARequest.RemoteSourceName), serrors.RemoteSourceDoesNotExist())
}
la, err := h.d.GetLinkedAccountByRemoteUserIDandSource(tx, req.CreateUserLARequest.RemoteUserID, rs.ID)
if err != nil {
return errors.Wrapf(err, "failed to get linked account for remote user id %q and remote source %q", req.CreateUserLARequest.RemoteUserID, rs.ID)
}
if la != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account for remote user id %q for remote source %q already exists", req.CreateUserLARequest.RemoteUserID, req.CreateUserLARequest.RemoteSourceName), serrors.LinkedAccountAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account for remote user id %q for remote source %q already exists", req.CreateUserLARequest.RemoteUserID, req.CreateUserLARequest.RemoteSourceName), serrors.LinkedAccountAlreadyExists())
}
}
@ -270,7 +270,7 @@ func (h *ActionHandler) DeleteUser(ctx context.Context, userRef string) error {
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
if err := h.d.DeleteOrgMembersByUserID(tx, user.ID); err != nil {
@ -319,7 +319,7 @@ func (h *ActionHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest)
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
}
if req.UserName != "" {
@ -329,7 +329,7 @@ func (h *ActionHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest)
return errors.WithStack(err)
}
if u != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user with name %q already exists", u.Name), serrors.UserAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user with name %q already exists", u.Name), serrors.UserAlreadyExists())
}
user.Name = req.UserName
@ -360,7 +360,7 @@ func (h *ActionHandler) GetUserLinkedAccounts(ctx context.Context, userRef strin
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
linkedAccounts, err = h.d.GetUserLinkedAccounts(tx, user.ID)
@ -404,7 +404,7 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
}
rs, err := h.d.GetRemoteSourceByName(tx, req.RemoteSourceName)
@ -412,7 +412,7 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
return errors.WithStack(err)
}
if rs == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remote source %q doesn't exist", req.RemoteSourceName), serrors.RemoteSourceDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remote source %q doesn't exist", req.RemoteSourceName), serrors.RemoteSourceDoesNotExist())
}
la, err = h.d.GetLinkedAccountByRemoteUserIDandSource(tx, req.RemoteUserID, rs.ID)
@ -420,7 +420,7 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
return errors.Wrapf(err, "failed to get linked account for remote user id %q and remote source %q", req.RemoteUserID, rs.ID)
}
if la != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account for remote user id %q for remote source %q already exists", req.RemoteUserID, req.RemoteSourceName), serrors.LinkedAccountAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account for remote user id %q for remote source %q already exists", req.RemoteUserID, req.RemoteSourceName), serrors.LinkedAccountAlreadyExists())
}
la = types.NewLinkedAccount(tx)
@ -463,7 +463,7 @@ func (h *ActionHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
la, err := h.d.GetLinkedAccount(tx, laID)
@ -471,12 +471,12 @@ func (h *ActionHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
return errors.WithStack(err)
}
if la == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account id %q for user %q doesn't exist", laID, userRef), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account id %q for user %q doesn't exist", laID, userRef), serrors.LinkedAccountDoesNotExist())
}
// check that the linked account belongs to the right user
if user.ID != la.UserID {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account id %q for user %q doesn't exist", laID, userRef), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account id %q for user %q doesn't exist", laID, userRef), serrors.LinkedAccountDoesNotExist())
}
if err := h.d.DeleteLinkedAccount(tx, la.ID); err != nil {
@ -516,7 +516,7 @@ func (h *ActionHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLAReque
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
}
la, err = h.d.GetLinkedAccount(tx, req.LinkedAccountID)
@ -524,12 +524,12 @@ func (h *ActionHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLAReque
return errors.WithStack(err)
}
if la == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account id %q for user %q doesn't exist", req.LinkedAccountID, req.UserRef), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account id %q for user %q doesn't exist", req.LinkedAccountID, req.UserRef), serrors.LinkedAccountDoesNotExist())
}
// check that the linked account belongs to the right user
if user.ID != la.UserID {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account id %q for user %q doesn't exist", req.LinkedAccountID, req.UserRef), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account id %q for user %q doesn't exist", req.LinkedAccountID, req.UserRef), serrors.LinkedAccountDoesNotExist())
}
rs, err := h.d.GetRemoteSource(tx, la.RemoteSourceID)
@ -537,7 +537,7 @@ func (h *ActionHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLAReque
return errors.WithStack(err)
}
if rs == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("remote source with id %q doesn't exist", la.RemoteSourceID), serrors.RemoteSourceDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("remote source with id %q doesn't exist", la.RemoteSourceID), serrors.RemoteSourceDoesNotExist())
}
la.RemoteUserID = req.RemoteUserID
@ -572,7 +572,7 @@ func (h *ActionHandler) GetUserTokens(ctx context.Context, userRef string) ([]*t
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
tokens, err = h.d.GetUserTokens(tx, user.ID)
@ -604,7 +604,7 @@ func (h *ActionHandler) CreateUserToken(ctx context.Context, userRef, tokenName
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
userToken, err := h.d.GetUserToken(tx, user.ID, tokenName)
@ -613,7 +613,7 @@ func (h *ActionHandler) CreateUserToken(ctx context.Context, userRef, tokenName
}
if userToken != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("token %q for user %q already exists", tokenName, userRef), serrors.UserTokenAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("token %q for user %q already exists", tokenName, userRef), serrors.UserTokenAlreadyExists())
}
token = types.NewUserToken(tx)
@ -648,7 +648,7 @@ func (h *ActionHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
userToken, err := h.d.GetUserToken(tx, user.ID, tokenName)
@ -657,7 +657,7 @@ func (h *ActionHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
}
if userToken == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("token %q for user %q doesn't exist", tokenName, userRef), serrors.UserTokenDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("token %q for user %q doesn't exist", tokenName, userRef), serrors.UserTokenDoesNotExist())
}
if err := h.d.DeleteUserToken(tx, userToken.ID); err != nil {
@ -695,14 +695,14 @@ func (h *ActionHandler) GetUserOrg(ctx context.Context, userRef, orgRef string)
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
org, err := h.GetOrgByRef(tx, orgRef)
if err != nil {
return errors.WithStack(err)
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %q doesn't exist", orgRef), serrors.OrganizationDoesNotExist())
}
dbUserOrg, err = h.d.GetUserOrg(tx, user.ID, org.ID)
@ -713,7 +713,7 @@ func (h *ActionHandler) GetUserOrg(ctx context.Context, userRef, orgRef string)
}
if dbUserOrg == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q is not member of org %q", userRef, orgRef), serrors.OrganizationDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q is not member of org %q", userRef, orgRef), serrors.OrganizationDoesNotExist())
}
userOrg := userOrgResponse(dbUserOrg)
@ -752,7 +752,7 @@ func (h *ActionHandler) GetUserOrgs(ctx context.Context, req *GetUserOrgsRequest
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", req.UserRef), serrors.UserDoesNotExist())
}
dbUserOrgs, err = h.d.GetUserOrgs(tx, user.ID, req.StartOrgName, limit, req.SortDirection)
@ -789,7 +789,7 @@ func (h *ActionHandler) GetUserOrgInvitations(ctx context.Context, userRef strin
return errors.WithStack(err)
}
if user == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("user %q doesn't exist", userRef), serrors.UserDoesNotExist())
}
orgInvitations, err = h.d.GetOrgInvitationByUserID(tx, user.ID)

View File

@ -111,7 +111,7 @@ func (h *ActionHandler) ValidateVariableReq(ctx context.Context, req *CreateUpda
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("variable name required"), serrors.InvalidVariableName())
}
if !util.ValidateName(req.Name) {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid variable name %q", req.Name), serrors.InvalidVariableName())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid variable name %q", req.Name), serrors.InvalidVariableName())
}
if len(req.Values) == 0 {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("variable values required"), serrors.InvalidVariableValues())
@ -123,7 +123,7 @@ func (h *ActionHandler) ValidateVariableReq(ctx context.Context, req *CreateUpda
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("variable parent id required"))
}
if req.Parent.Kind != types.ObjectKindProject && req.Parent.Kind != types.ObjectKindProjectGroup {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid variable parent kind %q", req.Parent.Kind))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid variable parent kind %q", req.Parent.Kind))
}
return nil
@ -154,7 +154,7 @@ func (h *ActionHandler) CreateVariable(ctx context.Context, req *CreateUpdateVar
return errors.WithStack(err)
}
if s != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("variable with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.VariableAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("variable with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.VariableAlreadyExists())
}
variable = types.NewVariable(tx)
@ -194,7 +194,7 @@ func (h *ActionHandler) UpdateVariable(ctx context.Context, curVariableName stri
return errors.WithStack(err)
}
if variable == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("variable with name %q for %s with id %q doesn't exists", curVariableName, req.Parent.Kind, req.Parent.ID), serrors.VariableDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("variable with name %q for %s with id %q doesn't exists", curVariableName, req.Parent.Kind, req.Parent.ID), serrors.VariableDoesNotExist())
}
if variable.Name != req.Name {
@ -204,7 +204,7 @@ func (h *ActionHandler) UpdateVariable(ctx context.Context, curVariableName stri
return errors.WithStack(err)
}
if u != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("variable with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.VariableAlreadyExists())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("variable with name %q for %s with id %q already exists", req.Name, req.Parent.Kind, req.Parent.ID), serrors.VariableAlreadyExists())
}
}
@ -239,7 +239,7 @@ func (h *ActionHandler) DeleteVariable(ctx context.Context, parentKind types.Obj
return errors.WithStack(err)
}
if variable == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("variable with name %q doesn't exist", variableName), serrors.VariableDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("variable with name %q doesn't exist", variableName), serrors.VariableDoesNotExist())
}
if err := h.d.DeleteVariable(tx, variable.ID); err != nil {

View File

@ -34,7 +34,7 @@ func GetObjectKindRef(r *http.Request) (types.ObjectKind, string, error) {
vars := mux.Vars(r)
projectRef, err := url.PathUnescape(vars["projectref"])
if err != nil {
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("wrong projectref %q", vars["projectref"]))
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("wrong projectref %q", vars["projectref"]))
}
if projectRef != "" {
return types.ObjectKindProject, projectRef, nil
@ -42,7 +42,7 @@ func GetObjectKindRef(r *http.Request) (types.ObjectKind, string, error) {
projectGroupRef, err := url.PathUnescape(vars["projectgroupref"])
if err != nil {
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("wrong projectgroupref %q", vars["projectgroupref"]))
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("wrong projectgroupref %q", vars["projectgroupref"]))
}
if projectGroupRef != "" {
return types.ObjectKindProjectGroup, projectGroupRef, nil
@ -78,7 +78,7 @@ func parseRequestOptions(r *http.Request) (*requestOptions, error) {
case types.SortDirectionAsc:
case types.SortDirectionDesc:
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
}
}

View File

@ -342,7 +342,7 @@ func TestUser(t *testing.T) {
})
t.Run("create duplicated user", func(t *testing.T) {
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user with name %q already exists", "user01"), serrors.UserAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user with name %q already exists", "user01"), serrors.UserAlreadyExists())
_, err := cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user01"})
assert.Error(t, err, expectedErr.Error())
})
@ -432,26 +432,26 @@ func TestProjectGroupsAndProjectsCreate(t *testing.T) {
t.Run("create duplicated project in user root project group", func(t *testing.T) {
projectName := "project01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, projectName)), serrors.ProjectAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, projectName)), serrors.ProjectAlreadyExists())
_, err := cs.ah.CreateProject(ctx, &action.CreateUpdateProjectRequest{Name: projectName, Parent: types.Parent{Kind: types.ObjectKindProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
assert.Error(t, err, expectedErr.Error())
})
t.Run("create duplicated project in org root project group", func(t *testing.T) {
projectName := "project01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, projectName)), serrors.ProjectAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, projectName)), serrors.ProjectAlreadyExists())
_, err := cs.ah.CreateProject(ctx, &action.CreateUpdateProjectRequest{Name: projectName, Parent: types.Parent{Kind: types.ObjectKindProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
assert.Error(t, err, expectedErr.Error())
})
t.Run("create duplicated project in user non root project group", func(t *testing.T) {
projectName := "project01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, "projectgroup01", projectName)), serrors.ProjectAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, "projectgroup01", projectName)), serrors.ProjectAlreadyExists())
_, err := cs.ah.CreateProject(ctx, &action.CreateUpdateProjectRequest{Name: projectName, Parent: types.Parent{Kind: types.ObjectKindProjectGroup, ID: path.Join("user", user.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
assert.Error(t, err, expectedErr.Error())
})
t.Run("create duplicated project in org non root project group", func(t *testing.T) {
projectName := "project01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, "projectgroup01", projectName)), serrors.ProjectAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, "projectgroup01", projectName)), serrors.ProjectAlreadyExists())
_, err := cs.ah.CreateProject(ctx, &action.CreateUpdateProjectRequest{Name: projectName, Parent: types.Parent{Kind: types.ObjectKindProjectGroup, ID: path.Join("org", org.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
assert.Error(t, err, expectedErr.Error())
})
@ -528,7 +528,7 @@ func TestProjectUpdate(t *testing.T) {
})
t.Run("move project to project group having project with same name", func(t *testing.T) {
projectName := "project01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, projectName)), serrors.ProjectAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, projectName)), serrors.ProjectAlreadyExists())
p02req.Parent.ID = path.Join("user", user.Name)
_, err := cs.ah.UpdateProject(ctx, path.Join("user", user.Name, "projectgroup01", projectName), p02req)
assert.Error(t, err, expectedErr.Error())
@ -607,7 +607,7 @@ func TestProjectGroupUpdate(t *testing.T) {
})
t.Run("move project to project group having project with same name", func(t *testing.T) {
projectGroupName := "pg01"
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project group with name %q, path %q already exists", projectGroupName, path.Join("user", user.Name, projectGroupName)), serrors.ProjectGroupAlreadyExists())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project group with name %q, path %q already exists", projectGroupName, path.Join("user", user.Name, projectGroupName)), serrors.ProjectGroupAlreadyExists())
pg05req.Parent.ID = path.Join("user", user.Name)
_, err := cs.ah.UpdateProjectGroup(ctx, path.Join("user", user.Name, "pg02", projectGroupName), pg05req)
assert.Error(t, err, expectedErr.Error())

View File

@ -126,14 +126,14 @@ func (h *ActionHandler) IsAuthUserVariableOwner(ctx context.Context, parentType
case cstypes.ObjectKindProjectGroup:
pg, _, err := h.configstoreClient.GetProjectGroup(ctx, parentRef)
if err != nil {
return false, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project group %q", parentRef))
return false, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project group %q", parentRef))
}
ownerType = pg.OwnerType
ownerID = pg.OwnerID
case cstypes.ObjectKindProject:
p, _, err := h.configstoreClient.GetProject(ctx, parentRef)
if err != nil {
return false, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", parentRef))
return false, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", parentRef))
}
ownerType = p.OwnerType
ownerID = p.OwnerID

View File

@ -58,7 +58,7 @@ func (h *ActionHandler) IsMaintenanceEnabled(ctx context.Context, serviceName st
return &MaintenanceStatusResponse{RequestedStatus: rsresp.RequestedStatus, CurrentStatus: rsresp.CurrentStatus}, nil
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid service name %q", serviceName))
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid service name %q", serviceName))
}
}
@ -82,7 +82,7 @@ func (h *ActionHandler) MaintenanceMode(ctx context.Context, serviceName string,
_, err = h.runserviceClient.DisableMaintenance(ctx)
}
default:
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid service name %q", serviceName))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid service name %q", serviceName))
}
if err != nil {
@ -108,7 +108,7 @@ func (h *ActionHandler) Export(ctx context.Context, serviceName string) (*http.R
resp, err = h.runserviceClient.Export(ctx)
res = resp.Response
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid service name %q", serviceName))
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid service name %q", serviceName))
}
if err != nil {
return nil, errors.WithStack(err)
@ -129,7 +129,7 @@ func (h *ActionHandler) Import(ctx context.Context, r io.Reader, serviceName str
case RunserviceService:
_, err = h.runserviceClient.Import(ctx, r)
default:
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid service name %q", serviceName))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid service name %q", serviceName))
}
if err != nil {
return errors.WithStack(err)

View File

@ -196,7 +196,7 @@ func (h *ActionHandler) CreateOrg(ctx context.Context, req *CreateOrgRequest) (*
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("organization name required"), serrors.InvalidOrganizationName())
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid organization name %q", req.Name), serrors.InvalidOrganizationName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid organization name %q", req.Name), serrors.InvalidOrganizationName())
}
if !cstypes.IsValidVisibility(req.Visibility) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid organization visibility"), serrors.InvalidVisibility())
@ -347,7 +347,7 @@ func (h *ActionHandler) GetOrgInvitations(ctx context.Context, orgRef string, li
org, _, err := h.configstoreClient.GetOrg(ctx, orgRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get org %s", orgRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get org %s", orgRef))
}
isOrgOwner, err := h.IsAuthUserOrgOwner(ctx, org.ID)
@ -392,7 +392,7 @@ func (h *ActionHandler) CreateOrgInvitation(ctx context.Context, req *CreateOrgI
org, _, err := h.configstoreClient.GetOrg(ctx, req.OrganizationRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get org %s", req.OrganizationRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get org %s", req.OrganizationRef))
}
isOrgOwner, err := h.IsAuthUserOrgOwner(ctx, org.ID)
@ -458,7 +458,7 @@ func (h *ActionHandler) OrgInvitationAction(ctx context.Context, req *OrgInvitat
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get org invitation"))
}
if orgInvitation == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("invitation for org %s user %s not found", req.OrgRef, userID), serrors.InvitationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("invitation for org %s user %s not found", req.OrgRef, userID), serrors.InvitationDoesNotExist())
}
if userID != orgInvitation.UserID {
@ -467,11 +467,11 @@ func (h *ActionHandler) OrgInvitationAction(ctx context.Context, req *OrgInvitat
org, _, err := h.configstoreClient.GetOrg(ctx, req.OrgRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get org %s", req.OrgRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get org %s", req.OrgRef))
}
if org == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("org %s doesn't exist", req.OrgRef), serrors.OrganizationDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("org %s doesn't exist", req.OrgRef), serrors.OrganizationDoesNotExist())
}
creq := &csapitypes.OrgInvitationActionRequest{Action: req.Action}
@ -495,7 +495,7 @@ func (h *ActionHandler) DeleteOrgInvitation(ctx context.Context, orgRef string,
org, _, err := h.configstoreClient.GetOrg(ctx, orgInvitation.OrganizationID)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get org %s", orgInvitation.OrganizationID))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get org %s", orgInvitation.OrganizationID))
}
isOrgOwner, err := h.IsAuthUserOrgOwner(ctx, org.ID)

View File

@ -34,7 +34,7 @@ import (
func (h *ActionHandler) GetProject(ctx context.Context, projectRef string) (*csapitypes.Project, error) {
project, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
if project.GlobalVisibility == cstypes.VisibilityPublic {
@ -71,7 +71,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateProjectReq
user, _, err := h.configstoreClient.GetUser(ctx, curUserID)
if err != nil {
return nil, util.NewAPIErrorWrap(util.ErrInternal, err, util.WithAPIErrorMsg("failed to get user %q", curUserID))
return nil, util.NewAPIErrorWrap(util.ErrInternal, err, util.WithAPIErrorMsgf("failed to get user %q", curUserID))
}
parentRef := req.ParentRef
@ -85,7 +85,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateProjectReq
if util.RemoteErrorIs(err, util.ErrNotExist) {
return nil, util.NewAPIError(util.ErrNotExist, serrors.ParentProjectGroupDoesNotExist())
}
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get parent project group %q", req.ParentRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get parent project group %q", req.ParentRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, pg.OwnerType, pg.OwnerID)
@ -97,7 +97,7 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateProjectReq
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project name %q", req.Name), serrors.InvalidProjectName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project name %q", req.Name), serrors.InvalidProjectName())
}
if req.RemoteSourceName == "" {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("empty remote source name"), serrors.InvalidRemoteSourceName())
@ -109,10 +109,10 @@ func (h *ActionHandler) CreateProject(ctx context.Context, req *CreateProjectReq
projectPath := path.Join(pg.Path, req.Name)
if _, _, err = h.configstoreClient.GetProject(ctx, projectPath); err != nil {
if !util.RemoteErrorIs(err, util.ErrNotExist) {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", req.Name))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", req.Name))
}
} else {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("project %q already exists", projectPath), serrors.ProjectAlreadyExists())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("project %q already exists", projectPath), serrors.ProjectAlreadyExists())
}
gitSource, rs, la, err := h.getUserGitSource(ctx, req.RemoteSourceName, curUserID)
@ -188,7 +188,7 @@ type UpdateProjectRequest struct {
func (h *ActionHandler) UpdateProject(ctx context.Context, projectRef string, req *UpdateProjectRequest) (*csapitypes.Project, error) {
p, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -249,7 +249,7 @@ func (h *ActionHandler) ProjectUpdateRepoLinkedAccount(ctx context.Context, proj
p, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -378,7 +378,7 @@ func (h *ActionHandler) genWebhookURL(project *csapitypes.Project) (string, erro
func (h *ActionHandler) ReconfigProject(ctx context.Context, projectRef string) error {
p, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -402,7 +402,7 @@ func (h *ActionHandler) ReconfigProject(ctx context.Context, projectRef string)
func (h *ActionHandler) DeleteProject(ctx context.Context, projectRef string) error {
p, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -447,7 +447,7 @@ func (h *ActionHandler) ProjectCreateRun(ctx context.Context, projectRef, branch
p, _, err := h.configstoreClient.GetProject(ctx, projectRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -502,7 +502,7 @@ func (h *ActionHandler) ProjectCreateRun(ctx context.Context, projectRef, branch
gitRefType, name, err := gitSource.RefType(refName)
if err != nil {
return util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("failed to get refType for ref %q", refName))
return util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("failed to get refType for ref %q", refName))
}
ref, err := gitSource.GetRef(p.RepositoryPath, refName)
if err != nil {
@ -583,12 +583,12 @@ func (h *ActionHandler) ProjectCreateRun(ctx context.Context, projectRef, branch
func (h *ActionHandler) getRemoteRepoAccessData(ctx context.Context, linkedAccountID string) (*cstypes.User, *cstypes.RemoteSource, *cstypes.LinkedAccount, error) {
user, _, err := h.configstoreClient.GetUserByLinkedAccount(ctx, linkedAccountID)
if err != nil {
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user with linked account id %q", linkedAccountID))
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user with linked account id %q", linkedAccountID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
var la *cstypes.LinkedAccount
@ -605,7 +605,7 @@ func (h *ActionHandler) getRemoteRepoAccessData(ctx context.Context, linkedAccou
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, la.RemoteSourceID)
if err != nil {
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", la.RemoteSourceID))
return nil, nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", la.RemoteSourceID))
}
return user, rs, la, nil
@ -619,7 +619,7 @@ func (h *ActionHandler) RefreshRemoteRepositoryInfo(ctx context.Context, project
p, err := h.GetProject(ctx, projectRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)
@ -632,7 +632,7 @@ func (h *ActionHandler) RefreshRemoteRepositoryInfo(ctx context.Context, project
gitSource, _, _, err := h.getUserGitSource(ctx, p.RemoteSourceID, curUserID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", p.RemoteSourceID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", p.RemoteSourceID))
}
repoInfo, err := gitSource.GetRepoInfo(p.RepositoryPath)

View File

@ -78,11 +78,11 @@ func (h *ActionHandler) CreateProjectGroup(ctx context.Context, req *CreateProje
user, _, err := h.configstoreClient.GetUser(ctx, curUserID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q", curUserID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q", curUserID))
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid project group name %q", req.Name), serrors.InvalidProjectName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid project group name %q", req.Name), serrors.InvalidProjectName())
}
pg, _, err := h.configstoreClient.GetProjectGroup(ctx, req.ParentRef)
@ -90,7 +90,7 @@ func (h *ActionHandler) CreateProjectGroup(ctx context.Context, req *CreateProje
if util.RemoteErrorIs(err, util.ErrNotExist) {
return nil, util.NewAPIError(util.ErrNotExist, serrors.ParentProjectGroupDoesNotExist())
}
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get parent project group %q", req.ParentRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get parent project group %q", req.ParentRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, pg.OwnerType, pg.OwnerID)
@ -136,7 +136,7 @@ type UpdateProjectGroupRequest struct {
func (h *ActionHandler) UpdateProjectGroup(ctx context.Context, projectGroupRef string, req *UpdateProjectGroupRequest) (*csapitypes.ProjectGroup, error) {
pg, _, err := h.configstoreClient.GetProjectGroup(ctx, projectGroupRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project group %q", projectGroupRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project group %q", projectGroupRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, pg.OwnerType, pg.OwnerID)
@ -176,7 +176,7 @@ func (h *ActionHandler) UpdateProjectGroup(ctx context.Context, projectGroupRef
func (h *ActionHandler) DeleteProjectGroup(ctx context.Context, projectRef string) error {
p, _, err := h.configstoreClient.GetProjectGroup(ctx, projectRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q", projectRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q", projectRef))
}
isProjectOwner, err := h.IsAuthUserProjectOwner(ctx, p.OwnerType, p.OwnerID)

View File

@ -105,7 +105,7 @@ func (h *ActionHandler) CreateRemoteSource(ctx context.Context, req *CreateRemot
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid remotesource name %q", req.Name), serrors.InvalidRemoteSourceName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid remotesource name %q", req.Name), serrors.InvalidRemoteSourceName())
}
if req.Name == "" {
@ -123,7 +123,7 @@ func (h *ActionHandler) CreateRemoteSource(ctx context.Context, req *CreateRemot
// validate if the remote source type supports the required auth type
if !cstypes.SourceSupportsAuthType(cstypes.RemoteSourceType(req.Type), cstypes.RemoteSourceAuthType(req.AuthType)) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource type %q doesn't support auth type %q", req.Type, req.AuthType), serrors.InvalidRemoteSourceAuthType())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("remotesource type %q doesn't support auth type %q", req.Type, req.AuthType), serrors.InvalidRemoteSourceAuthType())
}
if req.AuthType == string(cstypes.RemoteSourceAuthTypeOauth2) {
@ -195,7 +195,7 @@ func (h *ActionHandler) UpdateRemoteSource(ctx context.Context, req *UpdateRemot
if req.Name != nil {
if !util.ValidateName(*req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid remotesource name %q", *req.Name), serrors.InvalidRemoteSourceName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid remotesource name %q", *req.Name), serrors.InvalidRemoteSourceName())
}
if *req.Name == "" {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remotesource name required"), serrors.InvalidRemoteSourceName())

View File

@ -308,7 +308,7 @@ func (h *ActionHandler) RunAction(ctx context.Context, req *RunActionsRequest) (
}
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong run action type %q", req.ActionType))
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong run action type %q", req.ActionType))
}
return runResp, nil
@ -356,7 +356,7 @@ func (h *ActionHandler) RunTaskAction(ctx context.Context, req *RunTaskActionsRe
case RunTaskActionTypeApprove:
rt, ok := runResp.Run.Tasks[req.TaskID]
if !ok {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run %q doesn't have task %q", req.RunNumber, req.TaskID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run %q doesn't have task %q", req.RunNumber, req.TaskID))
}
approvers := []string{}
@ -373,7 +373,7 @@ func (h *ActionHandler) RunTaskAction(ctx context.Context, req *RunTaskActionsRe
for _, approver := range approvers {
if approver == curUserID {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user %q alredy approved the task", approver))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user %q alredy approved the task", approver))
}
}
approvers = append(approvers, curUserID)
@ -396,7 +396,7 @@ func (h *ActionHandler) RunTaskAction(ctx context.Context, req *RunTaskActionsRe
}
default:
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong run task action type %q", req.ActionType))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong run task action type %q", req.ActionType))
}
return nil

View File

@ -81,7 +81,7 @@ func (h *ActionHandler) CreateSecret(ctx context.Context, req *CreateSecretReque
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid secret name %q", req.Name), serrors.InvalidSecretName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid secret name %q", req.Name), serrors.InvalidSecretName())
}
creq := &csapitypes.CreateUpdateSecretRequest{
@ -135,7 +135,7 @@ func (h *ActionHandler) UpdateSecret(ctx context.Context, req *UpdateSecretReque
}
if !util.ValidateName(req.Name) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid secret name %q", req.Name), serrors.InvalidSecretName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid secret name %q", req.Name), serrors.InvalidSecretName())
}
creq := &csapitypes.CreateUpdateSecretRequest{

View File

@ -68,12 +68,12 @@ func (h *ActionHandler) GetCurrentUser(ctx context.Context) (*PrivateUserRespons
tokens, _, err := h.configstoreClient.GetUserTokens(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q tokens", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q tokens", user.ID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
return &PrivateUserResponse{User: user, Tokens: tokens, LinkedAccounts: linkedAccounts}, nil
@ -201,12 +201,12 @@ func (h *ActionHandler) GetUsers(ctx context.Context, req *GetUsersRequest) (*Ge
for i, user := range csusers {
tokens, _, err := h.configstoreClient.GetUserTokens(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q tokens", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q tokens", user.ID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
users[i] = &PrivateUserResponse{User: user, Tokens: tokens, LinkedAccounts: linkedAccounts}
@ -233,7 +233,7 @@ func (h *ActionHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user name required"), serrors.InvalidUserName())
}
if !util.ValidateName(req.UserName) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid user name %q", req.UserName), serrors.InvalidUserName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid user name %q", req.UserName), serrors.InvalidUserName())
}
creq := &csapitypes.CreateUserRequest{
@ -276,7 +276,7 @@ func (h *ActionHandler) CreateUserToken(ctx context.Context, req *CreateUserToke
tokens, _, err := h.configstoreClient.GetUserTokens(ctx, user.ID)
if err != nil {
return "", APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q tokens", user.ID))
return "", APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q tokens", user.ID))
}
var token *cstypes.UserToken
@ -287,7 +287,7 @@ func (h *ActionHandler) CreateUserToken(ctx context.Context, req *CreateUserToke
}
}
if token != nil {
return "", util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user %q already have a token with name %q", userRef, req.TokenName), serrors.UserTokenAlreadyExists())
return "", util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user %q already have a token with name %q", userRef, req.TokenName), serrors.UserTokenAlreadyExists())
}
h.log.Info().Msgf("creating user token")
@ -320,11 +320,11 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
userRef := req.UserRef
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, req.RemoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", req.RemoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", req.RemoteSourceName))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, userRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", userRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", userRef))
}
var la *cstypes.LinkedAccount
@ -335,7 +335,7 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
}
}
if la != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user %q already have a linked account for remote source %q", userRef, rs.Name), serrors.LinkedAccountAlreadyExists())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user %q already have a linked account for remote source %q", userRef, rs.Name), serrors.LinkedAccountAlreadyExists())
}
userSource, err := scommon.GetUserSource(rs, req.RemoteUserName, req.RemotePassword, req.Oauth2AccessToken)
@ -388,7 +388,7 @@ func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLAReque
func (h *ActionHandler) UpdateUserLA(ctx context.Context, userRef string, la *cstypes.LinkedAccount) error {
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, userRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", userRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", userRef))
}
laFound := false
@ -399,7 +399,7 @@ func (h *ActionHandler) UpdateUserLA(ctx context.Context, userRef string, la *cs
}
}
if !laFound {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user %q doesn't have a linked account with id %q", userRef, la.ID), serrors.LinkedAccountDoesNotExist())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user %q doesn't have a linked account with id %q", userRef, la.ID), serrors.LinkedAccountDoesNotExist())
}
creq := &csapitypes.UpdateUserLARequest{
@ -479,12 +479,12 @@ func (h *ActionHandler) RegisterUser(ctx context.Context, req *RegisterUserReque
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user name required"), serrors.InvalidUserName())
}
if !util.ValidateName(req.UserName) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid user name %q", req.UserName), serrors.InvalidUserName())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid user name %q", req.UserName), serrors.InvalidUserName())
}
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, req.RemoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", req.RemoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", req.RemoteSourceName))
}
if !rs.RegistrationEnabled {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remote source user registration is disabled"))
@ -505,10 +505,10 @@ func (h *ActionHandler) RegisterUser(ctx context.Context, req *RegisterUserReque
if _, _, err := h.configstoreClient.GetLinkedAccountByRemoteUserAndSource(ctx, remoteUserInfo.ID, rs.ID); err != nil {
if !util.RemoteErrorIs(err, util.ErrNotExist) {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get linked account for remote user id %q and remote source %q", remoteUserInfo.ID, rs.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get linked account for remote user id %q and remote source %q", remoteUserInfo.ID, rs.ID))
}
} else {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("linked account for remote user id %q for remote source %q already exists", remoteUserInfo.ID, rs.ID), serrors.LinkedAccountAlreadyExists())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("linked account for remote user id %q for remote source %q already exists", remoteUserInfo.ID, rs.ID), serrors.LinkedAccountAlreadyExists())
}
var userAccessToken string
@ -569,7 +569,7 @@ type LoginUserResponse struct {
func (h *ActionHandler) LoginUser(ctx context.Context, req *LoginUserRequest) (*LoginUserResponse, error) {
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, req.RemoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", req.RemoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", req.RemoteSourceName))
}
if !rs.LoginEnabled {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("remote source user login is disabled"))
@ -590,12 +590,12 @@ func (h *ActionHandler) LoginUser(ctx context.Context, req *LoginUserRequest) (*
user, _, err := h.configstoreClient.GetUserByLinkedAccountRemoteUserAndSource(ctx, remoteUserInfo.ID, rs.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user for remote user id %q and remote source %q", remoteUserInfo.ID, rs.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user for remote user id %q and remote source %q", remoteUserInfo.ID, rs.ID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
var la *cstypes.LinkedAccount
@ -606,7 +606,7 @@ func (h *ActionHandler) LoginUser(ctx context.Context, req *LoginUserRequest) (*
}
}
if la == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("linked account for user %q for remote source %q doesn't exist", user.Name, rs.Name), serrors.LinkedAccountDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("linked account for user %q for remote source %q doesn't exist", user.Name, rs.Name), serrors.LinkedAccountDoesNotExist())
}
userAccessToken := la.UserAccessToken
@ -699,7 +699,7 @@ type AuthorizeResponse struct {
func (h *ActionHandler) Authorize(ctx context.Context, req *AuthorizeRequest) (*AuthorizeResponse, error) {
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, req.RemoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", req.RemoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", req.RemoteSourceName))
}
userSource, err := scommon.GetUserSource(rs, req.RemoteUserName, req.RemotePassword, req.Oauth2AccessToken)
@ -729,7 +729,7 @@ type RemoteSourceAuthResponse struct {
func (h *ActionHandler) HandleRemoteSourceAuth(ctx context.Context, remoteSourceName, remoteUsername, remotePassword string, requestType RemoteSourceRequestType, req interface{}) (*RemoteSourceAuthResponse, error) {
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, remoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", remoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", remoteSourceName))
}
switch requestType {
@ -738,7 +738,7 @@ func (h *ActionHandler) HandleRemoteSourceAuth(ctx context.Context, remoteSource
user, _, err := h.configstoreClient.GetUser(ctx, req.UserRef)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q", req.UserRef))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q", req.UserRef))
}
// user must be already logged in the create a linked account and can create a
@ -754,7 +754,7 @@ func (h *ActionHandler) HandleRemoteSourceAuth(ctx context.Context, remoteSource
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
var la *cstypes.LinkedAccount
@ -765,7 +765,7 @@ func (h *ActionHandler) HandleRemoteSourceAuth(ctx context.Context, remoteSource
}
}
if la != nil {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("user %q already have a linked account for remote source %q", req.UserRef, rs.Name), serrors.LinkedAccountAlreadyExists())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("user %q already have a linked account for remote source %q", req.UserRef, rs.Name), serrors.LinkedAccountAlreadyExists())
}
case RemoteSourceRequestTypeLoginUser:
@ -980,7 +980,7 @@ func (h *ActionHandler) HandleOauth2Callback(ctx context.Context, code, state st
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, remoteSourceName)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", remoteSourceName))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", remoteSourceName))
}
oauth2Client, err := scommon.GetOauth2Client(rs)
@ -1017,7 +1017,7 @@ func (h *ActionHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
user, _, err := h.configstoreClient.GetUser(ctx, userRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q", userRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q", userRef))
}
// only admin or the same logged user can create a token
@ -1041,7 +1041,7 @@ func (h *ActionHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
user, _, err := h.configstoreClient.GetUser(ctx, userRef)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q", userRef))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q", userRef))
}
// only admin or the same logged user can create a token
@ -1085,7 +1085,7 @@ func (h *ActionHandler) UserCreateRun(ctx context.Context, req *UserCreateRunReq
user, _, err := h.configstoreClient.GetUser(ctx, curUserID)
if err != nil {
return APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q", curUserID))
return APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q", curUserID))
}
// Verify that the repo is owned by the user
@ -1094,10 +1094,10 @@ func (h *ActionHandler) UserCreateRun(ctx context.Context, req *UserCreateRunReq
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("empty repo uuid"))
}
if len(repoParts) != 2 {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong repo path: %q", req.RepoPath))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong repo path: %q", req.RepoPath))
}
if repoParts[0] != user.ID {
return util.NewAPIError(util.ErrUnauthorized, util.WithAPIErrorMsg("repo %q not owned", req.RepoPath))
return util.NewAPIError(util.ErrUnauthorized, util.WithAPIErrorMsgf("repo %q not owned", req.RepoPath))
}
branch := req.Branch
@ -1135,7 +1135,7 @@ func (h *ActionHandler) UserCreateRun(ctx context.Context, req *UserCreateRunReq
gitRefType, name, err := gitSource.RefType(ref)
if err != nil {
return util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("failed to get refType for ref %q", ref))
return util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("failed to get refType for ref %q", ref))
}
var pullRequestID string
@ -1279,12 +1279,12 @@ func (h *ActionHandler) GetUserByLinkedAccountRemoteUserAndSource(ctx context.Co
tokens, _, err := h.configstoreClient.GetUserTokens(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q tokens", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q tokens", user.ID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
return &PrivateUserResponse{User: user, Tokens: tokens, LinkedAccounts: linkedAccounts}, nil

View File

@ -88,7 +88,7 @@ func (h *ActionHandler) CreateVariable(ctx context.Context, req *CreateVariableR
}
if !util.ValidateName(req.Name) {
return nil, nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid variable name %q", req.Name), serrors.InvalidVariableName())
return nil, nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid variable name %q", req.Name), serrors.InvalidVariableName())
}
if len(req.Values) == 0 {
@ -108,7 +108,7 @@ func (h *ActionHandler) CreateVariable(ctx context.Context, req *CreateVariableR
var err error
cssecrets, _, err = h.configstoreClient.GetProjectGroupSecrets(ctx, req.ParentRef, true)
if err != nil {
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project group %q secrets", req.ParentRef))
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project group %q secrets", req.ParentRef))
}
h.log.Info().Msgf("creating project group variable")
@ -120,7 +120,7 @@ func (h *ActionHandler) CreateVariable(ctx context.Context, req *CreateVariableR
var err error
cssecrets, _, err = h.configstoreClient.GetProjectSecrets(ctx, req.ParentRef, true)
if err != nil {
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q secrets", req.ParentRef))
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q secrets", req.ParentRef))
}
h.log.Info().Msgf("creating project variable")
@ -155,7 +155,7 @@ func (h *ActionHandler) UpdateVariable(ctx context.Context, req *UpdateVariableR
}
if !util.ValidateName(req.Name) {
return nil, nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("invalid variable name %q", req.Name), serrors.InvalidVariableName())
return nil, nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("invalid variable name %q", req.Name), serrors.InvalidVariableName())
}
if len(req.Values) == 0 {
@ -175,7 +175,7 @@ func (h *ActionHandler) UpdateVariable(ctx context.Context, req *UpdateVariableR
var err error
cssecrets, _, err = h.configstoreClient.GetProjectGroupSecrets(ctx, req.ParentRef, true)
if err != nil {
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project group %q secrets", req.ParentRef))
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project group %q secrets", req.ParentRef))
}
h.log.Info().Msgf("creating project group variable")
@ -187,7 +187,7 @@ func (h *ActionHandler) UpdateVariable(ctx context.Context, req *UpdateVariableR
var err error
cssecrets, _, err = h.configstoreClient.GetProjectSecrets(ctx, req.ParentRef, true)
if err != nil {
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %q secrets", req.ParentRef))
return nil, nil, APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %q secrets", req.ParentRef))
}
h.log.Info().Msgf("creating project variable")

View File

@ -41,7 +41,7 @@ func GetConfigTypeRef(r *http.Request) (cstypes.ObjectKind, string, error) {
vars := mux.Vars(r)
projectRef, err := url.PathUnescape(vars["projectref"])
if err != nil {
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("wrong projectref %q", vars["projectref"]))
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("wrong projectref %q", vars["projectref"]))
}
if projectRef != "" {
return cstypes.ObjectKindProject, projectRef, nil
@ -49,7 +49,7 @@ func GetConfigTypeRef(r *http.Request) (cstypes.ObjectKind, string, error) {
projectGroupRef, err := url.PathUnescape(vars["projectgroupref"])
if err != nil {
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsg("wrong projectgroupref %q", vars["projectgroupref"]))
return "", "", util.NewAPIErrorWrap(util.ErrBadRequest, err, util.WithAPIErrorMsgf("wrong projectgroupref %q", vars["projectgroupref"]))
}
if projectGroupRef != "" {
return cstypes.ObjectKindProjectGroup, projectGroupRef, nil
@ -92,7 +92,7 @@ func parseRequestOptions(r *http.Request) (*requestOptions, error) {
case gwapitypes.SortDirectionAsc:
case gwapitypes.SortDirectionDesc:
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
}
}

View File

@ -288,7 +288,7 @@ func (h *RuntaskHandler) do(r *http.Request) (*gwapitypes.RunTaskResponse, error
rt, ok := run.Tasks[taskID]
if !ok {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run %q task %q not found", runNumber, taskID))
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run %q task %q not found", runNumber, taskID))
}
rct := rc.Tasks[rt.ID]

View File

@ -267,7 +267,7 @@ func (h *UsersHandler) do(w http.ResponseWriter, r *http.Request) ([]*gwapitypes
ausers = ares.Users
addCursorHeader(w, ares.Cursor)
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("unknown query_type: %q", queryType))
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("unknown query_type: %q", queryType))
}
users := make([]*gwapitypes.PrivateUserResponse, len(ausers))

View File

@ -59,24 +59,24 @@ func (h *webhooksHandler) do(r *http.Request) error {
projectID := r.URL.Query().Get("projectid")
if projectID == "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("bad webhook url %q. Missing projectid", r.URL))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("bad webhook url %q. Missing projectid", r.URL))
}
defer r.Body.Close()
csProject, _, err := h.configstoreClient.GetProject(ctx, projectID)
if err != nil {
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get project %s", projectID))
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get project %s", projectID))
}
project := csProject.Project
user, _, err := h.configstoreClient.GetUserByLinkedAccount(ctx, project.LinkedAccountID)
if err != nil {
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user by linked account %q", project.LinkedAccountID))
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user by linked account %q", project.LinkedAccountID))
}
linkedAccounts, _, err := h.configstoreClient.GetUserLinkedAccounts(ctx, user.ID)
if err != nil {
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get user %q linked accounts", user.ID))
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get user %q linked accounts", user.ID))
}
var la *cstypes.LinkedAccount
@ -88,12 +88,12 @@ func (h *webhooksHandler) do(r *http.Request) error {
}
if la == nil {
return util.NewAPIError(util.ErrInternal, util.WithAPIErrorMsg("linked account %q for user %q doesn't exist", project.LinkedAccountID, user.Name))
return util.NewAPIError(util.ErrInternal, util.WithAPIErrorMsgf("linked account %q for user %q doesn't exist", project.LinkedAccountID, user.Name))
}
rs, _, err := h.configstoreClient.GetRemoteSource(ctx, la.RemoteSourceID)
if err != nil {
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsg("failed to get remote source %q", la.RemoteSourceID))
return action.APIErrorFromRemoteError(err, util.WithAPIErrorMsgf("failed to get remote source %q", la.RemoteSourceID))
}
gitSource, err := h.ah.GetGitSource(ctx, rs, user.Name, la)

View File

@ -196,9 +196,9 @@ func (h *AuthChecker) checkAuthResponse(name string, res *checkerResponse) (bool
if res.failAuth {
if res.authErr != nil {
return false, util.NewAPIErrorWrap(util.ErrUnauthorized, res.authErr, util.WithAPIErrorMsg("checker %s: auth failed", name))
return false, util.NewAPIErrorWrap(util.ErrUnauthorized, res.authErr, util.WithAPIErrorMsgf("checker %s: auth failed", name))
}
return false, util.NewAPIError(util.ErrUnauthorized, util.WithAPIErrorMsg("checker %s: auth failed (no auth err reported by checker)", name))
return false, util.NewAPIError(util.ErrUnauthorized, util.WithAPIErrorMsgf("checker %s: auth failed (no auth err reported by checker)", name))
}
if res.authErr != nil {

View File

@ -86,7 +86,7 @@ func (h *ActionHandler) CommitStatusRedelivery(ctx context.Context, projectID st
return errors.WithStack(err)
}
if commitStatusDelivery == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("commitStatusDelivery %q doesn't exist", commitStatusDeliveryID), serrors.CommitStatusDeliveryDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("commitStatusDelivery %q doesn't exist", commitStatusDeliveryID), serrors.CommitStatusDeliveryDoesNotExist())
}
commitStatus, err := h.d.GetCommitStatusByID(tx, commitStatusDelivery.CommitStatusID)
@ -94,10 +94,10 @@ func (h *ActionHandler) CommitStatusRedelivery(ctx context.Context, projectID st
return errors.WithStack(err)
}
if commitStatus == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("commitStatus %q doesn't exist", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("commitStatus %q doesn't exist", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDoesNotExist())
}
if commitStatus.ProjectID != projectID {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("commitStatusDelivery %q doesn't belong to project %q", commitStatusDeliveryID, projectID), serrors.CommitStatusDeliveryDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("commitStatusDelivery %q doesn't belong to project %q", commitStatusDeliveryID, projectID), serrors.CommitStatusDeliveryDoesNotExist())
}
commitStatusDeliveries, err := h.d.GetCommitStatusDeliveriesByCommitStatusID(tx, commitStatusDelivery.CommitStatusID, []types.DeliveryStatus{types.DeliveryStatusNotDelivered}, 1, types.SortDirectionDesc)
@ -106,7 +106,7 @@ func (h *ActionHandler) CommitStatusRedelivery(ctx context.Context, projectID st
}
// check if commitStatus has delivery not delivered
if len(commitStatusDeliveries) != 0 {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("the previous delivery of commit status %q hasn't already been delivered", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDeliveryAlreadyInProgress())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("the previous delivery of commit status %q hasn't already been delivered", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDeliveryAlreadyInProgress())
}
newCommitStatusDelivery := types.NewCommitStatusDelivery(tx)

View File

@ -86,7 +86,7 @@ func (h *ActionHandler) RunWebhookRedelivery(ctx context.Context, projectID stri
return errors.WithStack(err)
}
if runWebhookDelivery == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runWebhookDelivery %q doesn't exist", runWebhookDeliveryID), serrors.RunWebhookDeliveryDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runWebhookDelivery %q doesn't exist", runWebhookDeliveryID), serrors.RunWebhookDeliveryDoesNotExist())
}
runWebhook, err := h.d.GetRunWebhookByID(tx, runWebhookDelivery.RunWebhookID)
@ -94,10 +94,10 @@ func (h *ActionHandler) RunWebhookRedelivery(ctx context.Context, projectID stri
return errors.WithStack(err)
}
if runWebhook == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runWebhook %q doesn't exist", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runWebhook %q doesn't exist", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDoesNotExist())
}
if runWebhook.ProjectID != projectID {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runWebhookDelivery %q doesn't belong to project %q", runWebhookDeliveryID, projectID), serrors.RunWebhookDeliveryDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runWebhookDelivery %q doesn't belong to project %q", runWebhookDeliveryID, projectID), serrors.RunWebhookDeliveryDoesNotExist())
}
runWebhookDeliveries, err := h.d.GetRunWebhookDeliveriesByRunWebhookID(tx, runWebhookDelivery.RunWebhookID, []types.DeliveryStatus{types.DeliveryStatusNotDelivered}, 1, types.SortDirectionDesc)
@ -106,7 +106,7 @@ func (h *ActionHandler) RunWebhookRedelivery(ctx context.Context, projectID stri
}
// check if runWebhook has delivery not delivered
if len(runWebhookDeliveries) != 0 {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("the previous delivery of run webhook %q hasn't already been delivered", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDeliveryAlreadyInProgress())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("the previous delivery of run webhook %q hasn't already been delivered", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDeliveryAlreadyInProgress())
}
newRunWebhookDelivery := types.NewRunWebhookDelivery(tx)

View File

@ -54,7 +54,7 @@ func parseRequestOptions(r *http.Request) (*requestOptions, error) {
case types.SortDirectionAsc:
case types.SortDirectionDesc:
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
}
}

View File

@ -823,7 +823,7 @@ func TestProjectRunWebhookRedelivery(t *testing.T) {
runWebhook := createRunWebhook(t, ctx, ns, project01)
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runWebhookDelivery %q doesn't exist", runWebhookDelivery01), serrors.RunWebhookDeliveryDoesNotExist())
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runWebhookDelivery %q doesn't exist", runWebhookDelivery01), serrors.RunWebhookDeliveryDoesNotExist())
err := ns.ah.RunWebhookRedelivery(ctx, runWebhook.ProjectID, runWebhookDelivery01)
assert.Error(t, err, expectedErr.Error())
})
@ -843,7 +843,7 @@ func TestProjectRunWebhookRedelivery(t *testing.T) {
runWebhook = createRunWebhook(t, ctx, ns, project02)
createRunWebhookDelivery(t, ctx, ns, runWebhook.ID, types.DeliveryStatusDelivered)
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runWebhookDelivery %q doesn't belong to project %q", runWebhookDelivery.ID, project02), serrors.RunWebhookDeliveryDoesNotExist())
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runWebhookDelivery %q doesn't belong to project %q", runWebhookDelivery.ID, project02), serrors.RunWebhookDeliveryDoesNotExist())
err := ns.ah.RunWebhookRedelivery(ctx, project02, runWebhookDelivery.ID)
assert.Error(t, err, expectedErr.Error())
@ -869,7 +869,7 @@ func TestProjectRunWebhookRedelivery(t *testing.T) {
ns.c.WebhookSecret = webhookSecret
ns.c.WebhookURL = fmt.Sprintf("%s/%s", wr.exposedURL, "webhooks")
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("the previous delivery of run webhook %q hasn't already been delivered", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDeliveryAlreadyInProgress())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("the previous delivery of run webhook %q hasn't already been delivered", runWebhookDelivery.RunWebhookID), serrors.RunWebhookDeliveryAlreadyInProgress())
err := ns.ah.RunWebhookRedelivery(ctx, runWebhook.ProjectID, runWebhookDelivery.ID)
assert.Error(t, err, expectedErr.Error())
@ -1177,7 +1177,7 @@ func TestProjectCommitStatusRedelivery(t *testing.T) {
commitStatus := createCommitStatus(t, ctx, ns, 1, project01)
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("commitStatusDelivery %q doesn't exist", commitStatusDelivery01), serrors.CommitStatusDeliveryDoesNotExist())
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("commitStatusDelivery %q doesn't exist", commitStatusDelivery01), serrors.CommitStatusDeliveryDoesNotExist())
err := ns.ah.CommitStatusRedelivery(ctx, commitStatus.ProjectID, commitStatusDelivery01)
if err == nil {
t.Fatalf("expected error %v, got nil err", expectedErr)
@ -1202,7 +1202,7 @@ func TestProjectCommitStatusRedelivery(t *testing.T) {
commitStatus = createCommitStatus(t, ctx, ns, 1, project02)
createCommitStatusDelivery(t, ctx, ns, commitStatus.ID, types.DeliveryStatusDelivered)
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("commitStatusDelivery %q doesn't belong to project %q", commitStatusDelivery.ID, project02), serrors.CommitStatusDeliveryDoesNotExist())
expectedErr := util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("commitStatusDelivery %q doesn't belong to project %q", commitStatusDelivery.ID, project02), serrors.CommitStatusDeliveryDoesNotExist())
err := ns.ah.CommitStatusRedelivery(ctx, project02, commitStatusDelivery.ID)
if err == nil {
@ -1230,7 +1230,7 @@ func TestProjectCommitStatusRedelivery(t *testing.T) {
cs := setupStubCommitStatusUpdater()
ns.u = cs
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("the previous delivery of commit status %q hasn't already been delivered", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDeliveryAlreadyInProgress())
expectedErr := util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("the previous delivery of commit status %q hasn't already been delivered", commitStatusDelivery.CommitStatusID), serrors.CommitStatusDeliveryAlreadyInProgress())
err := ns.ah.CommitStatusRedelivery(ctx, commitStatus.ProjectID, commitStatusDelivery.ID)
if err == nil {

View File

@ -354,7 +354,7 @@ func (h *ActionHandler) newRun(ctx context.Context, req *RunCreateRequest) (*typ
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run group is empty"), serrors.InvalidRunGroup())
}
if !path.IsAbs(req.Group) {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run group %q must be an absolute path", req.Group), serrors.InvalidRunGroup())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run group %q must be an absolute path", req.Group), serrors.InvalidRunGroup())
}
if req.RunConfigTasks == nil && len(setupErrors) == 0 {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("empty run config tasks and setup errors"))
@ -406,7 +406,7 @@ func (h *ActionHandler) recreateRun(ctx context.Context, req *RunCreateRequest)
return errors.WithStack(err)
}
if run == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run %q doesn't exist", req.RunID), serrors.RunDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run %q doesn't exist", req.RunID), serrors.RunDoesNotExist())
}
rc, err = h.d.GetRunConfig(tx, run.RunConfigID)
@ -414,7 +414,7 @@ func (h *ActionHandler) recreateRun(ctx context.Context, req *RunCreateRequest)
return errors.WithStack(err)
}
if rc == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("runconfig %q doesn't exist", run.RunConfigID), serrors.RunDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("runconfig %q doesn't exist", run.RunConfigID), serrors.RunDoesNotExist())
}
return nil
@ -428,11 +428,11 @@ func (h *ActionHandler) recreateRun(ctx context.Context, req *RunCreateRequest)
if req.FromStart {
if canRestart, reason := run.CanRestartFromScratch(); !canRestart {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run cannot be restarted: %s", reason), serrors.RunCannotBeRestarted())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run cannot be restarted: %s", reason), serrors.RunCannotBeRestarted())
}
} else {
if canRestart, reason := run.CanRestartFromFailedTasks(); !canRestart {
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run cannot be restarted: %s", reason), serrors.RunCannotBeRestarted())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run cannot be restarted: %s", reason), serrors.RunCannotBeRestarted())
}
}
@ -709,7 +709,7 @@ func (h *ActionHandler) RunTaskSetAnnotations(ctx context.Context, req *RunTaskS
task, ok := r.Tasks[req.TaskID]
if !ok {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run %q doesn't have task %q", r.ID, req.TaskID), serrors.RunTaskDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run %q doesn't have task %q", r.ID, req.TaskID), serrors.RunTaskDoesNotExist())
}
task.Annotations = req.Annotations
@ -755,15 +755,15 @@ func (h *ActionHandler) ApproveRunTask(ctx context.Context, req *RunTaskApproveR
task, ok := r.Tasks[req.TaskID]
if !ok {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run %q doesn't have task %q", r.ID, req.TaskID), serrors.RunTaskDoesNotExist())
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run %q doesn't have task %q", r.ID, req.TaskID), serrors.RunTaskDoesNotExist())
}
if !task.WaitingApproval {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run %q, task %q is not in waiting approval state", r.ID, req.TaskID), serrors.RunTaskNotWaitingApproval())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run %q, task %q is not in waiting approval state", r.ID, req.TaskID), serrors.RunTaskNotWaitingApproval())
}
if task.Approved {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("run %q, task %q is already approved", r.ID, req.TaskID), serrors.RunTaskAlreadyApproved())
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("run %q, task %q is already approved", r.ID, req.TaskID), serrors.RunTaskAlreadyApproved())
}
task.WaitingApproval = false
@ -807,7 +807,7 @@ func (h *ActionHandler) GetExecutorTask(ctx context.Context, etID string) (*GetE
return errors.WithStack(err)
}
if et == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("executor task %q not found", etID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("executor task %q not found", etID))
}
r, err := h.d.GetRun(tx, et.RunID)
@ -823,7 +823,7 @@ func (h *ActionHandler) GetExecutorTask(ctx context.Context, etID string) (*GetE
return errors.Wrapf(err, "cannot get run config %q", r.ID)
}
if rc == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("runconfig %q doesn't exist", r.RunConfigID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("runconfig %q doesn't exist", r.RunConfigID))
}
rt, ok := r.Tasks[et.RunTaskID]
@ -867,7 +867,7 @@ func (h *ActionHandler) GetExecutorTasks(ctx context.Context, executorID string)
return errors.Wrapf(err, "cannot get run config %q", r.ID)
}
if rc == nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("runconfig %q doesn't exist", r.RunConfigID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("runconfig %q doesn't exist", r.RunConfigID))
}
rt, ok := r.Tasks[et.RunTaskID]

View File

@ -70,7 +70,7 @@ func parseRequestOptions(r *http.Request) (*requestOptions, error) {
case types.SortDirectionAsc:
case types.SortDirectionDesc:
default:
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
return nil, util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("wrong sort direction %q", sortDirection), serrors.InvalidSortDirection())
}
}
@ -173,15 +173,15 @@ func (h *LogsHandler) readTaskLogs(ctx context.Context, runID, taskID string, se
}
if r == nil {
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such run with id: %s", runID), serrors.RunDoesNotExist())
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such run with id: %s", runID), serrors.RunDoesNotExist())
}
task, ok := r.Tasks[taskID]
if !ok {
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such task with ID %s in run %s", taskID, runID), serrors.RunTaskDoesNotExist())
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such task with ID %s in run %s", taskID, runID), serrors.RunTaskDoesNotExist())
}
if len(task.Steps) <= step {
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such step for task %s in run %s", taskID, runID), serrors.RunTaskStepDoesNotExist())
return true, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such step for task %s in run %s", taskID, runID), serrors.RunTaskStepDoesNotExist())
}
// if the log has been already fetched use it, otherwise fetch it from the executor
@ -213,7 +213,7 @@ func (h *LogsHandler) readTaskLogs(ctx context.Context, runID, taskID string, se
return errors.WithStack(err)
}
if et == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("executor task for run task with id %q doesn't exist", task.ID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("executor task for run task with id %q doesn't exist", task.ID))
}
executor, err = h.d.GetExecutorByExecutorID(tx, et.ExecutorID)
@ -221,7 +221,7 @@ func (h *LogsHandler) readTaskLogs(ctx context.Context, runID, taskID string, se
return errors.WithStack(err)
}
if executor == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("executor with id %q doesn't exist", et.ExecutorID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("executor with id %q doesn't exist", et.ExecutorID))
}
return nil
@ -346,7 +346,7 @@ func (h *LogsDeleteHandler) do(r *http.Request) error {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("setup is false and step is empty"))
}
if setup && stepStr != "" {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("setup is true and step is %s", stepStr))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("setup is true and step is %s", stepStr))
}
var step int
@ -354,7 +354,7 @@ func (h *LogsDeleteHandler) do(r *http.Request) error {
var err error
step, err = strconv.Atoi(stepStr)
if err != nil {
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("step %s is not a valid number", stepStr))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("step %s is not a valid number", stepStr))
}
}
@ -386,15 +386,15 @@ func (h *LogsDeleteHandler) deleteTaskLogs(ctx context.Context, runID, taskID st
}
if r == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such run with id: %s", runID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such run with id: %s", runID))
}
task, ok := r.Tasks[taskID]
if !ok {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such task with ID %s in run %s", taskID, runID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such task with ID %s in run %s", taskID, runID))
}
if len(task.Steps) <= step {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("no such step for task %s in run %s", taskID, runID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("no such step for task %s in run %s", taskID, runID))
}
if task.Steps[step].LogPhase == types.RunTaskFetchPhaseFinished {
@ -413,7 +413,7 @@ func (h *LogsDeleteHandler) deleteTaskLogs(ctx context.Context, runID, taskID st
}
return nil
}
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsg("Log for task %s in run %s is not yet archived", taskID, runID))
return util.NewAPIError(util.ErrBadRequest, util.WithAPIErrorMsgf("Log for task %s in run %s is not yet archived", taskID, runID))
}
type ChangeGroupsUpdateTokensHandler struct {
@ -528,11 +528,11 @@ func (h *RunHandler) do(r *http.Request) (*rsapitypes.RunResponse, error) {
}
if run == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run with id %q doesn't exist", runRef), serrors.RunDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run with id %q doesn't exist", runRef), serrors.RunDoesNotExist())
}
if rc == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run config for run with id %q doesn't exist", runRef), serrors.RunDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run config for run with id %q doesn't exist", runRef), serrors.RunDoesNotExist())
}
cgts, err := types.MarshalChangeGroupsUpdateToken(cgt)
@ -628,11 +628,11 @@ func (h *RunByGroupHandler) do(r *http.Request) (*rsapitypes.RunResponse, error)
return nil, errors.WithStack(err)
}
if run == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run for group %q with counter %d doesn't exist", group, runCounter), serrors.RunDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run for group %q with counter %d doesn't exist", group, runCounter), serrors.RunDoesNotExist())
}
if rc == nil {
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("run config for run with id %q doesn't exist", run.ID), serrors.RunDoesNotExist())
return nil, util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("run config for run with id %q doesn't exist", run.ID), serrors.RunDoesNotExist())
}
cgts, err := types.MarshalChangeGroupsUpdateToken(cgt)

View File

@ -640,7 +640,7 @@ func (h *ExecutorDeleteHandler) do(r *http.Request) error {
return errors.WithStack(err)
}
if executor == nil {
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsg("executor with executor id %s doesn't exist", executorID))
return util.NewAPIError(util.ErrNotExist, util.WithAPIErrorMsgf("executor with executor id %s doesn't exist", executorID))
}
if err := h.d.DeleteExecutor(tx, executor.ID); err != nil {

View File

@ -270,12 +270,21 @@ func (e *APIError) message() string {
type APIErrorOption func(e *APIError)
// WithAPIErrorMsgf adds an internal message to the error. This message could
// contain sensitive data so it's just for internal logging and will not be sent
// to the api caller.
func WithAPIErrorMsgf(format string, args ...any) APIErrorOption {
return func(e *APIError) {
e.msg = fmt.Sprintf(format, args...)
}
}
// WithAPIErrorMsg adds an internal message to the error. This message could
// contain sensitive data so it's just for internal logging and will not be sent
// to the api caller.
func WithAPIErrorMsg(format string, args ...interface{}) APIErrorOption {
func WithAPIErrorMsg(a ...any) APIErrorOption {
return func(e *APIError) {
e.msg = fmt.Sprintf(format, args...)
e.msg = fmt.Sprint(a...)
}
}