configstore: rename command(handler) to action(handler)
Since we're going to migrate all actions (also queries that now are implemented in the api handlers) there
This commit is contained in:
parent
5a50a2681d
commit
ca5b5f3a7e
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"github.com/sorintlab/agola/internal/datamanager"
|
||||
|
@ -21,14 +21,14 @@ import (
|
|||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type CommandHandler struct {
|
||||
type ActionHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
readDB *readdb.ReadDB
|
||||
dm *datamanager.DataManager
|
||||
}
|
||||
|
||||
func NewCommandHandler(logger *zap.Logger, readDB *readdb.ReadDB, dm *datamanager.DataManager) *CommandHandler {
|
||||
return &CommandHandler{
|
||||
func NewActionHandler(logger *zap.Logger, readDB *readdb.ReadDB, dm *datamanager.DataManager) *ActionHandler {
|
||||
return &ActionHandler{
|
||||
log: logger.Sugar(),
|
||||
readDB: readDB,
|
||||
dm: dm,
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -28,7 +28,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateOrg(ctx context.Context, org *types.Organization) (*types.Organization, error) {
|
||||
func (h *ActionHandler) CreateOrg(ctx context.Context, org *types.Organization) (*types.Organization, error) {
|
||||
if org.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("organization name required"))
|
||||
}
|
||||
|
@ -41,15 +41,15 @@ func (s *CommandHandler) CreateOrg(ctx context.Context, org *types.Organization)
|
|||
cgNames := []string{util.EncodeSha256Hex("orgname-" + org.Name)}
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check duplicate org name
|
||||
u, err := s.readDB.GetOrgByName(tx, org.Name)
|
||||
u, err := h.readDB.GetOrgByName(tx, org.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ func (s *CommandHandler) CreateOrg(ctx context.Context, org *types.Organization)
|
|||
}
|
||||
|
||||
if org.CreatorUserID != "" {
|
||||
user, err := s.readDB.GetUser(tx, org.CreatorUserID)
|
||||
user, err := h.readDB.GetUser(tx, org.CreatorUserID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -126,20 +126,20 @@ func (s *CommandHandler) CreateOrg(ctx context.Context, org *types.Organization)
|
|||
Data: pgj,
|
||||
})
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return org, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteOrg(ctx context.Context, orgRef string) error {
|
||||
func (h *ActionHandler) DeleteOrg(ctx context.Context, orgRef string) error {
|
||||
var org *types.Organization
|
||||
var projects []*types.Project
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
// check org existance
|
||||
org, err = s.readDB.GetOrgByName(tx, orgRef)
|
||||
org, err = h.readDB.GetOrgByName(tx, orgRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ func (s *CommandHandler) DeleteOrg(ctx context.Context, orgRef string) error {
|
|||
|
||||
// changegroup is the org id
|
||||
cgNames := []string{util.EncodeSha256Hex("orgid-" + org.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -177,6 +177,6 @@ func (s *CommandHandler) DeleteOrg(ctx context.Context, orgRef string) error {
|
|||
})
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -28,7 +28,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Project) (*types.Project, error) {
|
||||
func (h *ActionHandler) CreateProject(ctx context.Context, project *types.Project) (*types.Project, error) {
|
||||
if project.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("project name required"))
|
||||
}
|
||||
|
@ -65,9 +65,9 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
group, err := s.readDB.GetProjectGroup(tx, project.Parent.ID)
|
||||
group, err := h.readDB.GetProjectGroup(tx, project.Parent.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
}
|
||||
project.Parent.ID = group.ID
|
||||
|
||||
groupPath, err := s.readDB.GetProjectGroupPath(tx, group)
|
||||
groupPath, err := h.readDB.GetProjectGroupPath(tx, group)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -85,13 +85,13 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
// changegroup is the project path. Use "projectpath" prefix as it must
|
||||
// cover both projects and projectgroups
|
||||
cgNames := []string{util.EncodeSha256Hex("projectpath-" + pp)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check duplicate project name
|
||||
p, err := s.readDB.GetProjectByName(tx, project.Parent.ID, project.Name)
|
||||
p, err := h.readDB.GetProjectByName(tx, project.Parent.ID, project.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
return util.NewErrBadRequest(errors.Errorf("project with name %q, path %q already exists", p.Name, pp))
|
||||
}
|
||||
// check duplicate project group name
|
||||
pg, err := s.readDB.GetProjectGroupByName(tx, project.Parent.ID, project.Name)
|
||||
pg, err := h.readDB.GetProjectGroupByName(tx, project.Parent.ID, project.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
|
||||
if project.RemoteRepositoryConfigType == types.RemoteRepositoryConfigTypeRemoteSource {
|
||||
// check that the linked account matches the remote source
|
||||
user, err := s.readDB.GetUserByLinkedAccount(tx, project.LinkedAccountID)
|
||||
user, err := h.readDB.GetUserByLinkedAccount(tx, project.LinkedAccountID)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to get user with linked account id %q", project.LinkedAccountID)
|
||||
}
|
||||
|
@ -147,21 +147,21 @@ func (s *CommandHandler) CreateProject(ctx context.Context, project *types.Proje
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return project, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteProject(ctx context.Context, projectRef string) error {
|
||||
func (h *ActionHandler) DeleteProject(ctx context.Context, projectRef string) error {
|
||||
var project *types.Project
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
|
||||
// check project existance
|
||||
project, err = s.readDB.GetProject(tx, projectRef)
|
||||
project, err = h.readDB.GetProject(tx, projectRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ func (s *CommandHandler) DeleteProject(ctx context.Context, projectRef string) e
|
|||
|
||||
// changegroup is the project id.
|
||||
cgNames := []string{util.EncodeSha256Hex(project.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -191,6 +191,6 @@ func (s *CommandHandler) DeleteProject(ctx context.Context, projectRef string) e
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -28,7 +28,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateProjectGroup(ctx context.Context, projectGroup *types.ProjectGroup) (*types.ProjectGroup, error) {
|
||||
func (h *ActionHandler) CreateProjectGroup(ctx context.Context, projectGroup *types.ProjectGroup) (*types.ProjectGroup, error) {
|
||||
if projectGroup.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("project group name required"))
|
||||
}
|
||||
|
@ -45,8 +45,8 @@ func (s *CommandHandler) CreateProjectGroup(ctx context.Context, projectGroup *t
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
parentProjectGroup, err := s.readDB.GetProjectGroup(tx, projectGroup.Parent.ID)
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
parentProjectGroup, err := h.readDB.GetProjectGroup(tx, projectGroup.Parent.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ func (s *CommandHandler) CreateProjectGroup(ctx context.Context, projectGroup *t
|
|||
}
|
||||
projectGroup.Parent.ID = parentProjectGroup.ID
|
||||
|
||||
groupPath, err := s.readDB.GetProjectGroupPath(tx, parentProjectGroup)
|
||||
groupPath, err := h.readDB.GetProjectGroupPath(tx, parentProjectGroup)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -64,13 +64,13 @@ func (s *CommandHandler) CreateProjectGroup(ctx context.Context, projectGroup *t
|
|||
// changegroup is the projectgroup path. Use "projectpath" prefix as it must
|
||||
// cover both projects and projectgroups
|
||||
cgNames := []string{util.EncodeSha256Hex("projectpath-" + pp)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check duplicate project group name
|
||||
pg, err := s.readDB.GetProjectGroupByName(tx, projectGroup.Parent.ID, projectGroup.Name)
|
||||
pg, err := h.readDB.GetProjectGroupByName(tx, projectGroup.Parent.ID, projectGroup.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -99,6 +99,6 @@ func (s *CommandHandler) CreateProjectGroup(ctx context.Context, projectGroup *t
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return projectGroup, err
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -27,7 +27,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateRemoteSource(ctx context.Context, remoteSource *types.RemoteSource) (*types.RemoteSource, error) {
|
||||
func (h *ActionHandler) CreateRemoteSource(ctx context.Context, remoteSource *types.RemoteSource) (*types.RemoteSource, error) {
|
||||
if remoteSource.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("remotesource name required"))
|
||||
}
|
||||
|
@ -66,15 +66,15 @@ func (s *CommandHandler) CreateRemoteSource(ctx context.Context, remoteSource *t
|
|||
cgNames := []string{util.EncodeSha256Hex("remotesourcename-" + remoteSource.Name)}
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check duplicate remoteSource name
|
||||
u, err := s.readDB.GetRemoteSourceByName(tx, remoteSource.Name)
|
||||
u, err := h.readDB.GetRemoteSourceByName(tx, remoteSource.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -102,11 +102,11 @@ func (s *CommandHandler) CreateRemoteSource(ctx context.Context, remoteSource *t
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return remoteSource, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteRemoteSource(ctx context.Context, remoteSourceName string) error {
|
||||
func (h *ActionHandler) DeleteRemoteSource(ctx context.Context, remoteSourceName string) error {
|
||||
var remoteSource *types.RemoteSource
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
@ -115,15 +115,15 @@ func (s *CommandHandler) DeleteRemoteSource(ctx context.Context, remoteSourceNam
|
|||
cgNames := []string{util.EncodeSha256Hex("remotesourceid-" + remoteSource.ID)}
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check remoteSource existance
|
||||
remoteSource, err = s.readDB.GetRemoteSourceByName(tx, remoteSourceName)
|
||||
remoteSource, err = h.readDB.GetRemoteSourceByName(tx, remoteSourceName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -145,6 +145,6 @@ func (s *CommandHandler) DeleteRemoteSource(ctx context.Context, remoteSourceNam
|
|||
}
|
||||
|
||||
// changegroup is all the remote sources
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -27,7 +27,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateSecret(ctx context.Context, secret *types.Secret) (*types.Secret, error) {
|
||||
func (h *ActionHandler) CreateSecret(ctx context.Context, secret *types.Secret) (*types.Secret, error) {
|
||||
if secret.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("secret name required"))
|
||||
}
|
||||
|
@ -58,21 +58,21 @@ func (s *CommandHandler) CreateSecret(ctx context.Context, secret *types.Secret)
|
|||
cgNames := []string{util.EncodeSha256Hex("secretname-" + secret.Name)}
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
parentID, err := s.readDB.ResolveConfigID(tx, secret.Parent.Type, secret.Parent.ID)
|
||||
parentID, err := h.readDB.ResolveConfigID(tx, secret.Parent.Type, secret.Parent.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
secret.Parent.ID = parentID
|
||||
|
||||
// check duplicate secret name
|
||||
s, err := s.readDB.GetSecretByName(tx, secret.Parent.ID, secret.Name)
|
||||
s, err := h.readDB.GetSecretByName(tx, secret.Parent.ID, secret.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -101,25 +101,25 @@ func (s *CommandHandler) CreateSecret(ctx context.Context, secret *types.Secret)
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return secret, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteSecret(ctx context.Context, parentType types.ConfigType, parentRef, secretName string) error {
|
||||
func (h *ActionHandler) DeleteSecret(ctx context.Context, parentType types.ConfigType, parentRef, secretName string) error {
|
||||
var secret *types.Secret
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
parentID, err := s.readDB.ResolveConfigID(tx, parentType, parentRef)
|
||||
parentID, err := h.readDB.ResolveConfigID(tx, parentType, parentRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check secret existance
|
||||
secret, err = s.readDB.GetSecretByName(tx, parentID, secretName)
|
||||
secret, err = h.readDB.GetSecretByName(tx, parentID, secretName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ func (s *CommandHandler) DeleteSecret(ctx context.Context, parentType types.Conf
|
|||
|
||||
// changegroup is the secret id
|
||||
cgNames := []string{util.EncodeSha256Hex("secretid-" + secret.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -148,6 +148,6 @@ func (s *CommandHandler) DeleteSecret(ctx context.Context, parentType types.Conf
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -35,7 +35,7 @@ type CreateUserRequest struct {
|
|||
CreateUserLARequest *CreateUserLARequest
|
||||
}
|
||||
|
||||
func (s *CommandHandler) CreateUser(ctx context.Context, req *CreateUserRequest) (*types.User, error) {
|
||||
func (h *ActionHandler) CreateUser(ctx context.Context, req *CreateUserRequest) (*types.User, error) {
|
||||
if req.UserName == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("user name required"))
|
||||
}
|
||||
|
@ -50,15 +50,15 @@ func (s *CommandHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
|
|||
var rs *types.RemoteSource
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check duplicate user name
|
||||
u, err := s.readDB.GetUserByName(tx, req.UserName)
|
||||
u, err := h.readDB.GetUserByName(tx, req.UserName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -67,14 +67,14 @@ func (s *CommandHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
|
|||
}
|
||||
|
||||
if req.CreateUserLARequest != nil {
|
||||
rs, err = s.readDB.GetRemoteSourceByName(tx, req.CreateUserLARequest.RemoteSourceName)
|
||||
rs, err = h.readDB.GetRemoteSourceByName(tx, req.CreateUserLARequest.RemoteSourceName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if rs == nil {
|
||||
return util.NewErrBadRequest(errors.Errorf("remote source %q doesn't exist", req.CreateUserLARequest.RemoteSourceName))
|
||||
}
|
||||
user, err := s.readDB.GetUserByLinkedAccountRemoteUserIDandSource(tx, req.CreateUserLARequest.RemoteUserID, rs.ID)
|
||||
user, err := h.readDB.GetUserByLinkedAccountRemoteUserIDandSource(tx, req.CreateUserLARequest.RemoteUserID, rs.ID)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to get user for remote user id %q and remote source %q", req.CreateUserLARequest.RemoteUserID, rs.ID)
|
||||
}
|
||||
|
@ -143,20 +143,20 @@ func (s *CommandHandler) CreateUser(ctx context.Context, req *CreateUserRequest)
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return user, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteUser(ctx context.Context, userRef string) error {
|
||||
func (h *ActionHandler) DeleteUser(ctx context.Context, userRef string) error {
|
||||
var user *types.User
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
|
||||
// check user existance
|
||||
user, err = s.readDB.GetUser(tx, userRef)
|
||||
user, err = h.readDB.GetUser(tx, userRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ func (s *CommandHandler) DeleteUser(ctx context.Context, userRef string) error {
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ func (s *CommandHandler) DeleteUser(ctx context.Context, userRef string) error {
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -195,16 +195,16 @@ type UpdateUserRequest struct {
|
|||
UserName string
|
||||
}
|
||||
|
||||
func (s *CommandHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest) (*types.User, error) {
|
||||
func (h *ActionHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest) (*types.User, error) {
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
cgNames := []string{}
|
||||
var user *types.User
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, req.UserRef)
|
||||
user, err = h.readDB.GetUser(tx, req.UserRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -212,14 +212,14 @@ func (s *CommandHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest)
|
|||
return util.NewErrBadRequest(errors.Errorf("user %q doesn't exist", req.UserRef))
|
||||
}
|
||||
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if req.UserName != "" {
|
||||
// check duplicate user name
|
||||
u, err := s.readDB.GetUserByName(tx, req.UserName)
|
||||
u, err := h.readDB.GetUserByName(tx, req.UserName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ func (s *CommandHandler) UpdateUser(ctx context.Context, req *UpdateUserRequest)
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return user, err
|
||||
}
|
||||
|
||||
|
@ -271,7 +271,7 @@ type CreateUserLARequest struct {
|
|||
Oauth2AccessTokenExpiresAt time.Time
|
||||
}
|
||||
|
||||
func (s *CommandHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequest) (*types.LinkedAccount, error) {
|
||||
func (h *ActionHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequest) (*types.LinkedAccount, error) {
|
||||
if req.UserRef == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("user ref required"))
|
||||
}
|
||||
|
@ -285,9 +285,9 @@ func (s *CommandHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequ
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, req.UserRef)
|
||||
user, err = h.readDB.GetUser(tx, req.UserRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -297,12 +297,12 @@ func (s *CommandHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequ
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rs, err = s.readDB.GetRemoteSourceByName(tx, req.RemoteSourceName)
|
||||
rs, err = h.readDB.GetRemoteSourceByName(tx, req.RemoteSourceName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -310,7 +310,7 @@ func (s *CommandHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequ
|
|||
return util.NewErrBadRequest(errors.Errorf("remote source %q doesn't exist", req.RemoteSourceName))
|
||||
}
|
||||
|
||||
user, err := s.readDB.GetUserByLinkedAccountRemoteUserIDandSource(tx, req.RemoteUserID, rs.ID)
|
||||
user, err := h.readDB.GetUserByLinkedAccountRemoteUserIDandSource(tx, req.RemoteUserID, rs.ID)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to get user for remote user id %q and remote source %q", req.RemoteUserID, rs.ID)
|
||||
}
|
||||
|
@ -353,11 +353,11 @@ func (s *CommandHandler) CreateUserLA(ctx context.Context, req *CreateUserLARequ
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return la, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteUserLA(ctx context.Context, userRef, laID string) error {
|
||||
func (h *ActionHandler) DeleteUserLA(ctx context.Context, userRef, laID string) error {
|
||||
if userRef == "" {
|
||||
return util.NewErrBadRequest(errors.Errorf("user ref required"))
|
||||
}
|
||||
|
@ -370,9 +370,9 @@ func (s *CommandHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, userRef)
|
||||
user, err = h.readDB.GetUser(tx, userRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ func (s *CommandHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -413,7 +413,7 @@ func (s *CommandHandler) DeleteUserLA(ctx context.Context, userRef, laID string)
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -429,7 +429,7 @@ type UpdateUserLARequest struct {
|
|||
Oauth2AccessTokenExpiresAt time.Time
|
||||
}
|
||||
|
||||
func (s *CommandHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequest) (*types.LinkedAccount, error) {
|
||||
func (h *ActionHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequest) (*types.LinkedAccount, error) {
|
||||
if req.UserRef == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("user ref required"))
|
||||
}
|
||||
|
@ -440,9 +440,9 @@ func (s *CommandHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequ
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, req.UserRef)
|
||||
user, err = h.readDB.GetUser(tx, req.UserRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -452,7 +452,7 @@ func (s *CommandHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequ
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -462,7 +462,7 @@ func (s *CommandHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequ
|
|||
return util.NewErrBadRequest(errors.Errorf("linked account id %q for user %q doesn't exist", req.LinkedAccountID, user.Name))
|
||||
}
|
||||
|
||||
rs, err = s.readDB.GetRemoteSource(tx, la.RemoteSourceID)
|
||||
rs, err = h.readDB.GetRemoteSource(tx, la.RemoteSourceID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -497,11 +497,11 @@ func (s *CommandHandler) UpdateUserLA(ctx context.Context, req *UpdateUserLARequ
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return la, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) CreateUserToken(ctx context.Context, userRef, tokenName string) (string, error) {
|
||||
func (h *ActionHandler) CreateUserToken(ctx context.Context, userRef, tokenName string) (string, error) {
|
||||
if userRef == "" {
|
||||
return "", util.NewErrBadRequest(errors.Errorf("user ref required"))
|
||||
}
|
||||
|
@ -514,9 +514,9 @@ func (s *CommandHandler) CreateUserToken(ctx context.Context, userRef, tokenName
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, userRef)
|
||||
user, err = h.readDB.GetUser(tx, userRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -526,7 +526,7 @@ func (s *CommandHandler) CreateUserToken(ctx context.Context, userRef, tokenName
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -562,11 +562,11 @@ func (s *CommandHandler) CreateUserToken(ctx context.Context, userRef, tokenName
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return token, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteUserToken(ctx context.Context, userRef, tokenName string) error {
|
||||
func (h *ActionHandler) DeleteUserToken(ctx context.Context, userRef, tokenName string) error {
|
||||
if userRef == "" {
|
||||
return util.NewErrBadRequest(errors.Errorf("user ref required"))
|
||||
}
|
||||
|
@ -579,9 +579,9 @@ func (s *CommandHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
|
|||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err = s.readDB.GetUser(tx, userRef)
|
||||
user, err = h.readDB.GetUser(tx, userRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -591,7 +591,7 @@ func (s *CommandHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
|
|||
|
||||
// changegroup is the userid
|
||||
cgNames := []string{util.EncodeSha256Hex("userid-" + user.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -622,7 +622,7 @@ func (s *CommandHandler) DeleteUserToken(ctx context.Context, userRef, tokenName
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -638,11 +638,11 @@ func userOrgsResponse(userOrg *readdb.UserOrg) *UserOrgsResponse {
|
|||
}
|
||||
}
|
||||
|
||||
func (s *CommandHandler) GetUserOrgs(ctx context.Context, userRef string) ([]*UserOrgsResponse, error) {
|
||||
func (h *ActionHandler) GetUserOrgs(ctx context.Context, userRef string) ([]*UserOrgsResponse, error) {
|
||||
var userOrgs []*readdb.UserOrg
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
user, err := s.readDB.GetUser(tx, userRef)
|
||||
user, err := h.readDB.GetUser(tx, userRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -650,7 +650,7 @@ func (s *CommandHandler) GetUserOrgs(ctx context.Context, userRef string) ([]*Us
|
|||
return util.NewErrNotFound(errors.Errorf("user %q doesn't exist", userRef))
|
||||
}
|
||||
|
||||
userOrgs, err = s.readDB.GetUserOrgs(tx, user.ID)
|
||||
userOrgs, err = h.readDB.GetUserOrgs(tx, user.ID)
|
||||
return err
|
||||
})
|
||||
if err != nil {
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package command
|
||||
package action
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
@ -27,7 +27,7 @@ import (
|
|||
uuid "github.com/satori/go.uuid"
|
||||
)
|
||||
|
||||
func (s *CommandHandler) CreateVariable(ctx context.Context, variable *types.Variable) (*types.Variable, error) {
|
||||
func (h *ActionHandler) CreateVariable(ctx context.Context, variable *types.Variable) (*types.Variable, error) {
|
||||
if variable.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("variable name required"))
|
||||
}
|
||||
|
@ -52,21 +52,21 @@ func (s *CommandHandler) CreateVariable(ctx context.Context, variable *types.Var
|
|||
cgNames := []string{util.EncodeSha256Hex("variablename-" + variable.Name)}
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
parentID, err := s.readDB.ResolveConfigID(tx, variable.Parent.Type, variable.Parent.ID)
|
||||
parentID, err := h.readDB.ResolveConfigID(tx, variable.Parent.Type, variable.Parent.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
variable.Parent.ID = parentID
|
||||
|
||||
// check duplicate variable name
|
||||
s, err := s.readDB.GetVariableByName(tx, variable.Parent.ID, variable.Name)
|
||||
s, err := h.readDB.GetVariableByName(tx, variable.Parent.ID, variable.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -95,25 +95,25 @@ func (s *CommandHandler) CreateVariable(ctx context.Context, variable *types.Var
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return variable, err
|
||||
}
|
||||
|
||||
func (s *CommandHandler) DeleteVariable(ctx context.Context, parentType types.ConfigType, parentRef, variableName string) error {
|
||||
func (h *ActionHandler) DeleteVariable(ctx context.Context, parentType types.ConfigType, parentRef, variableName string) error {
|
||||
var variable *types.Variable
|
||||
|
||||
var cgt *datamanager.ChangeGroupsUpdateToken
|
||||
|
||||
// must do all the checks in a single transaction to avoid concurrent changes
|
||||
err := s.readDB.Do(func(tx *db.Tx) error {
|
||||
err := h.readDB.Do(func(tx *db.Tx) error {
|
||||
var err error
|
||||
parentID, err := s.readDB.ResolveConfigID(tx, parentType, parentRef)
|
||||
parentID, err := h.readDB.ResolveConfigID(tx, parentType, parentRef)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// check variable existance
|
||||
variable, err = s.readDB.GetVariableByName(tx, parentID, variableName)
|
||||
variable, err = h.readDB.GetVariableByName(tx, parentID, variableName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ func (s *CommandHandler) DeleteVariable(ctx context.Context, parentType types.Co
|
|||
|
||||
// changegroup is the variable id
|
||||
cgNames := []string{util.EncodeSha256Hex("variableid-" + variable.ID)}
|
||||
cgt, err = s.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
cgt, err = h.readDB.GetChangeGroupsUpdateTokens(tx, cgNames)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -141,6 +141,6 @@ func (s *CommandHandler) DeleteVariable(ctx context.Context, parentType types.Co
|
|||
},
|
||||
}
|
||||
|
||||
_, err = s.dm.WriteWal(ctx, actions, cgt)
|
||||
_, err = h.dm.WriteWal(ctx, actions, cgt)
|
||||
return err
|
||||
}
|
|
@ -21,7 +21,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -67,11 +67,11 @@ func (h *OrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type CreateOrgHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewCreateOrgHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateOrgHandler {
|
||||
return &CreateOrgHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateOrgHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateOrgHandler {
|
||||
return &CreateOrgHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateOrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -84,7 +84,7 @@ func (h *CreateOrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
org, err := h.ch.CreateOrg(ctx, &req)
|
||||
org, err := h.ah.CreateOrg(ctx, &req)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -97,11 +97,11 @@ func (h *CreateOrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type DeleteOrgHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteOrgHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteOrgHandler {
|
||||
return &DeleteOrgHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteOrgHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteOrgHandler {
|
||||
return &DeleteOrgHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteOrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -111,7 +111,7 @@ func (h *DeleteOrgHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
vars := mux.Vars(r)
|
||||
orgRef := vars["orgref"]
|
||||
|
||||
err := h.ch.DeleteOrg(ctx, orgRef)
|
||||
err := h.ah.DeleteOrg(ctx, orgRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -159,12 +159,12 @@ func (h *ProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type CreateProjectHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
readDB *readdb.ReadDB
|
||||
}
|
||||
|
||||
func NewCreateProjectHandler(logger *zap.Logger, ch *command.CommandHandler, readDB *readdb.ReadDB) *CreateProjectHandler {
|
||||
return &CreateProjectHandler{log: logger.Sugar(), ch: ch, readDB: readDB}
|
||||
func NewCreateProjectHandler(logger *zap.Logger, ah *action.ActionHandler, readDB *readdb.ReadDB) *CreateProjectHandler {
|
||||
return &CreateProjectHandler{log: logger.Sugar(), ah: ah, readDB: readDB}
|
||||
}
|
||||
|
||||
func (h *CreateProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -177,7 +177,7 @@ func (h *CreateProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
return
|
||||
}
|
||||
|
||||
project, err := h.ch.CreateProject(ctx, &req)
|
||||
project, err := h.ah.CreateProject(ctx, &req)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -196,11 +196,11 @@ func (h *CreateProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
type DeleteProjectHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteProjectHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteProjectHandler {
|
||||
return &DeleteProjectHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteProjectHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteProjectHandler {
|
||||
return &DeleteProjectHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -213,7 +213,7 @@ func (h *DeleteProjectHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
return
|
||||
}
|
||||
|
||||
err = h.ch.DeleteProject(ctx, projectRef)
|
||||
err = h.ah.DeleteProject(ctx, projectRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -249,12 +249,12 @@ func (h *ProjectGroupSubgroupsHandler) ServeHTTP(w http.ResponseWriter, r *http.
|
|||
|
||||
type CreateProjectGroupHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
readDB *readdb.ReadDB
|
||||
}
|
||||
|
||||
func NewCreateProjectGroupHandler(logger *zap.Logger, ch *command.CommandHandler, readDB *readdb.ReadDB) *CreateProjectGroupHandler {
|
||||
return &CreateProjectGroupHandler{log: logger.Sugar(), ch: ch, readDB: readDB}
|
||||
func NewCreateProjectGroupHandler(logger *zap.Logger, ah *action.ActionHandler, readDB *readdb.ReadDB) *CreateProjectGroupHandler {
|
||||
return &CreateProjectGroupHandler{log: logger.Sugar(), ah: ah, readDB: readDB}
|
||||
}
|
||||
|
||||
func (h *CreateProjectGroupHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -267,7 +267,7 @@ func (h *CreateProjectGroupHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
return
|
||||
}
|
||||
|
||||
projectGroup, err := h.ch.CreateProjectGroup(ctx, &req)
|
||||
projectGroup, err := h.ah.CreateProjectGroup(ctx, &req)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
|
|
@ -21,7 +21,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -67,12 +67,12 @@ func (h *RemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
type CreateRemoteSourceHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
readDB *readdb.ReadDB
|
||||
}
|
||||
|
||||
func NewCreateRemoteSourceHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateRemoteSourceHandler {
|
||||
return &CreateRemoteSourceHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateRemoteSourceHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateRemoteSourceHandler {
|
||||
return &CreateRemoteSourceHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateRemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -85,7 +85,7 @@ func (h *CreateRemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
return
|
||||
}
|
||||
|
||||
remoteSource, err := h.ch.CreateRemoteSource(ctx, &req)
|
||||
remoteSource, err := h.ah.CreateRemoteSource(ctx, &req)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -98,11 +98,11 @@ func (h *CreateRemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
|
||||
type DeleteRemoteSourceHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteRemoteSourceHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteRemoteSourceHandler {
|
||||
return &DeleteRemoteSourceHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteRemoteSourceHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteRemoteSourceHandler {
|
||||
return &DeleteRemoteSourceHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteRemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -111,7 +111,7 @@ func (h *DeleteRemoteSourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
vars := mux.Vars(r)
|
||||
rsRef := vars["remotesourceref"]
|
||||
|
||||
err := h.ch.DeleteRemoteSource(ctx, rsRef)
|
||||
err := h.ah.DeleteRemoteSource(ctx, rsRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -140,12 +140,12 @@ func (h *SecretsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type CreateSecretHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
readDB *readdb.ReadDB
|
||||
}
|
||||
|
||||
func NewCreateSecretHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateSecretHandler {
|
||||
return &CreateSecretHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateSecretHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateSecretHandler {
|
||||
return &CreateSecretHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -166,7 +166,7 @@ func (h *CreateSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
secret.Parent.Type = parentType
|
||||
secret.Parent.ID = parentRef
|
||||
|
||||
secret, err = h.ch.CreateSecret(ctx, secret)
|
||||
secret, err = h.ah.CreateSecret(ctx, secret)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -179,11 +179,11 @@ func (h *CreateSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
type DeleteSecretHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteSecretHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteSecretHandler {
|
||||
return &DeleteSecretHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteSecretHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteSecretHandler {
|
||||
return &DeleteSecretHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -197,7 +197,7 @@ func (h *DeleteSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
return
|
||||
}
|
||||
|
||||
err = h.ch.DeleteSecret(ctx, parentType, parentRef, secretName)
|
||||
err = h.ah.DeleteSecret(ctx, parentType, parentRef, secretName)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import (
|
|||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
action "github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -74,11 +74,11 @@ type CreateUserRequest struct {
|
|||
|
||||
type CreateUserHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewCreateUserHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateUserHandler {
|
||||
return &CreateUserHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateUserHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateUserHandler {
|
||||
return &CreateUserHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -91,11 +91,11 @@ func (h *CreateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
creq := &command.CreateUserRequest{
|
||||
creq := &action.CreateUserRequest{
|
||||
UserName: req.UserName,
|
||||
}
|
||||
if req.CreateUserLARequest != nil {
|
||||
creq.CreateUserLARequest = &command.CreateUserLARequest{
|
||||
creq.CreateUserLARequest = &action.CreateUserLARequest{
|
||||
RemoteSourceName: req.CreateUserLARequest.RemoteSourceName,
|
||||
RemoteUserID: req.CreateUserLARequest.RemoteUserID,
|
||||
RemoteUserName: req.CreateUserLARequest.RemoteUserName,
|
||||
|
@ -106,7 +106,7 @@ func (h *CreateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
user, err := h.ch.CreateUser(ctx, creq)
|
||||
user, err := h.ah.CreateUser(ctx, creq)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -123,11 +123,11 @@ type UpdateUserRequest struct {
|
|||
|
||||
type UpdateUserHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewUpdateUserHandler(logger *zap.Logger, ch *command.CommandHandler) *UpdateUserHandler {
|
||||
return &UpdateUserHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewUpdateUserHandler(logger *zap.Logger, ah *action.ActionHandler) *UpdateUserHandler {
|
||||
return &UpdateUserHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *UpdateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -143,12 +143,12 @@ func (h *UpdateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
creq := &command.UpdateUserRequest{
|
||||
creq := &action.UpdateUserRequest{
|
||||
UserRef: userRef,
|
||||
UserName: req.UserName,
|
||||
}
|
||||
|
||||
user, err := h.ch.UpdateUser(ctx, creq)
|
||||
user, err := h.ah.UpdateUser(ctx, creq)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -161,11 +161,11 @@ func (h *UpdateUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type DeleteUserHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteUserHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteUserHandler {
|
||||
return &DeleteUserHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteUserHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteUserHandler {
|
||||
return &DeleteUserHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -174,7 +174,7 @@ func (h *DeleteUserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
vars := mux.Vars(r)
|
||||
userRef := vars["userref"]
|
||||
|
||||
err := h.ch.DeleteUser(ctx, userRef)
|
||||
err := h.ah.DeleteUser(ctx, userRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
@ -319,11 +319,11 @@ type CreateUserLARequest struct {
|
|||
|
||||
type CreateUserLAHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewCreateUserLAHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateUserLAHandler {
|
||||
return &CreateUserLAHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateUserLAHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateUserLAHandler {
|
||||
return &CreateUserLAHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -338,7 +338,7 @@ func (h *CreateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
return
|
||||
}
|
||||
|
||||
creq := &command.CreateUserLARequest{
|
||||
creq := &action.CreateUserLARequest{
|
||||
UserRef: userRef,
|
||||
RemoteSourceName: req.RemoteSourceName,
|
||||
RemoteUserID: req.RemoteUserID,
|
||||
|
@ -348,7 +348,7 @@ func (h *CreateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
Oauth2RefreshToken: req.Oauth2RefreshToken,
|
||||
Oauth2AccessTokenExpiresAt: req.Oauth2AccessTokenExpiresAt,
|
||||
}
|
||||
user, err := h.ch.CreateUserLA(ctx, creq)
|
||||
user, err := h.ah.CreateUserLA(ctx, creq)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -361,11 +361,11 @@ func (h *CreateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
type DeleteUserLAHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteUserLAHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteUserLAHandler {
|
||||
return &DeleteUserLAHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteUserLAHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteUserLAHandler {
|
||||
return &DeleteUserLAHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -374,7 +374,7 @@ func (h *DeleteUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
userRef := vars["userref"]
|
||||
laID := vars["laid"]
|
||||
|
||||
err := h.ch.DeleteUserLA(ctx, userRef, laID)
|
||||
err := h.ah.DeleteUserLA(ctx, userRef, laID)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
@ -394,11 +394,11 @@ type UpdateUserLARequest struct {
|
|||
|
||||
type UpdateUserLAHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewUpdateUserLAHandler(logger *zap.Logger, ch *command.CommandHandler) *UpdateUserLAHandler {
|
||||
return &UpdateUserLAHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewUpdateUserLAHandler(logger *zap.Logger, ah *action.ActionHandler) *UpdateUserLAHandler {
|
||||
return &UpdateUserLAHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *UpdateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -414,7 +414,7 @@ func (h *UpdateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
return
|
||||
}
|
||||
|
||||
creq := &command.UpdateUserLARequest{
|
||||
creq := &action.UpdateUserLARequest{
|
||||
UserRef: userRef,
|
||||
LinkedAccountID: linkedAccountID,
|
||||
RemoteUserID: req.RemoteUserID,
|
||||
|
@ -424,7 +424,7 @@ func (h *UpdateUserLAHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
Oauth2RefreshToken: req.Oauth2RefreshToken,
|
||||
Oauth2AccessTokenExpiresAt: req.Oauth2AccessTokenExpiresAt,
|
||||
}
|
||||
user, err := h.ch.UpdateUserLA(ctx, creq)
|
||||
user, err := h.ah.UpdateUserLA(ctx, creq)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -445,11 +445,11 @@ type CreateUserTokenResponse struct {
|
|||
|
||||
type CreateUserTokenHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewCreateUserTokenHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateUserTokenHandler {
|
||||
return &CreateUserTokenHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateUserTokenHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateUserTokenHandler {
|
||||
return &CreateUserTokenHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateUserTokenHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -464,7 +464,7 @@ func (h *CreateUserTokenHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques
|
|||
return
|
||||
}
|
||||
|
||||
token, err := h.ch.CreateUserToken(ctx, userRef, req.TokenName)
|
||||
token, err := h.ah.CreateUserToken(ctx, userRef, req.TokenName)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -480,11 +480,11 @@ func (h *CreateUserTokenHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques
|
|||
|
||||
type DeleteUserTokenHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteUserTokenHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteUserTokenHandler {
|
||||
return &DeleteUserTokenHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteUserTokenHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteUserTokenHandler {
|
||||
return &DeleteUserTokenHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteUserTokenHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -493,7 +493,7 @@ func (h *DeleteUserTokenHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques
|
|||
userRef := vars["userref"]
|
||||
tokenName := vars["tokenname"]
|
||||
|
||||
err := h.ch.DeleteUserToken(ctx, userRef, tokenName)
|
||||
err := h.ah.DeleteUserToken(ctx, userRef, tokenName)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -508,7 +508,7 @@ type UserOrgsResponse struct {
|
|||
Role types.MemberRole
|
||||
}
|
||||
|
||||
func userOrgsResponse(userOrg *command.UserOrgsResponse) *UserOrgsResponse {
|
||||
func userOrgsResponse(userOrg *action.UserOrgsResponse) *UserOrgsResponse {
|
||||
return &UserOrgsResponse{
|
||||
Organization: userOrg.Organization,
|
||||
Role: userOrg.Role,
|
||||
|
@ -517,11 +517,11 @@ func userOrgsResponse(userOrg *command.UserOrgsResponse) *UserOrgsResponse {
|
|||
|
||||
type UserOrgsHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewUserOrgsHandler(logger *zap.Logger, ch *command.CommandHandler) *UserOrgsHandler {
|
||||
return &UserOrgsHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewUserOrgsHandler(logger *zap.Logger, ah *action.ActionHandler) *UserOrgsHandler {
|
||||
return &UserOrgsHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *UserOrgsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -529,7 +529,7 @@ func (h *UserOrgsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
vars := mux.Vars(r)
|
||||
userRef := vars["userref"]
|
||||
|
||||
userOrgs, err := h.ch.GetUserOrgs(ctx, userRef)
|
||||
userOrgs, err := h.ah.GetUserOrgs(ctx, userRef)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
|
|
@ -19,7 +19,7 @@ import (
|
|||
"net/http"
|
||||
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -103,12 +103,12 @@ func (h *VariablesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
type CreateVariableHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
readDB *readdb.ReadDB
|
||||
}
|
||||
|
||||
func NewCreateVariableHandler(logger *zap.Logger, ch *command.CommandHandler) *CreateVariableHandler {
|
||||
return &CreateVariableHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewCreateVariableHandler(logger *zap.Logger, ah *action.ActionHandler) *CreateVariableHandler {
|
||||
return &CreateVariableHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *CreateVariableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -129,7 +129,7 @@ func (h *CreateVariableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request
|
|||
variable.Parent.Type = parentType
|
||||
variable.Parent.ID = parentRef
|
||||
|
||||
variable, err = h.ch.CreateVariable(ctx, variable)
|
||||
variable, err = h.ah.CreateVariable(ctx, variable)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
return
|
||||
|
@ -142,11 +142,11 @@ func (h *CreateVariableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request
|
|||
|
||||
type DeleteVariableHandler struct {
|
||||
log *zap.SugaredLogger
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
}
|
||||
|
||||
func NewDeleteVariableHandler(logger *zap.Logger, ch *command.CommandHandler) *DeleteVariableHandler {
|
||||
return &DeleteVariableHandler{log: logger.Sugar(), ch: ch}
|
||||
func NewDeleteVariableHandler(logger *zap.Logger, ah *action.ActionHandler) *DeleteVariableHandler {
|
||||
return &DeleteVariableHandler{log: logger.Sugar(), ah: ah}
|
||||
}
|
||||
|
||||
func (h *DeleteVariableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -160,7 +160,7 @@ func (h *DeleteVariableHandler) ServeHTTP(w http.ResponseWriter, r *http.Request
|
|||
return
|
||||
}
|
||||
|
||||
err = h.ch.DeleteVariable(ctx, parentType, parentRef, variableName)
|
||||
err = h.ah.DeleteVariable(ctx, parentType, parentRef, variableName)
|
||||
if httpError(w, err) {
|
||||
h.log.Errorf("err: %+v", err)
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ import (
|
|||
"github.com/sorintlab/agola/internal/objectstorage"
|
||||
"github.com/sorintlab/agola/internal/services/config"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/api"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
action "github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/readdb"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -48,7 +48,7 @@ type ConfigStore struct {
|
|||
dm *datamanager.DataManager
|
||||
readDB *readdb.ReadDB
|
||||
ost *objectstorage.ObjStorage
|
||||
ch *command.CommandHandler
|
||||
ah *action.ActionHandler
|
||||
listenAddress string
|
||||
}
|
||||
|
||||
|
@ -98,8 +98,8 @@ func NewConfigStore(ctx context.Context, c *config.ConfigStore) (*ConfigStore, e
|
|||
cs.dm = dm
|
||||
cs.readDB = readDB
|
||||
|
||||
ch := command.NewCommandHandler(logger, readDB, dm)
|
||||
cs.ch = ch
|
||||
ah := action.NewActionHandler(logger, readDB, dm)
|
||||
cs.ah = ah
|
||||
|
||||
return cs, nil
|
||||
}
|
||||
|
@ -128,44 +128,44 @@ func (s *ConfigStore) Run(ctx context.Context) error {
|
|||
projectGroupHandler := api.NewProjectGroupHandler(logger, s.readDB)
|
||||
projectGroupSubgroupsHandler := api.NewProjectGroupSubgroupsHandler(logger, s.readDB)
|
||||
projectGroupProjectsHandler := api.NewProjectGroupProjectsHandler(logger, s.readDB)
|
||||
createProjectGroupHandler := api.NewCreateProjectGroupHandler(logger, s.ch, s.readDB)
|
||||
createProjectGroupHandler := api.NewCreateProjectGroupHandler(logger, s.ah, s.readDB)
|
||||
|
||||
projectHandler := api.NewProjectHandler(logger, s.readDB)
|
||||
createProjectHandler := api.NewCreateProjectHandler(logger, s.ch, s.readDB)
|
||||
deleteProjectHandler := api.NewDeleteProjectHandler(logger, s.ch)
|
||||
createProjectHandler := api.NewCreateProjectHandler(logger, s.ah, s.readDB)
|
||||
deleteProjectHandler := api.NewDeleteProjectHandler(logger, s.ah)
|
||||
|
||||
secretsHandler := api.NewSecretsHandler(logger, s.readDB)
|
||||
createSecretHandler := api.NewCreateSecretHandler(logger, s.ch)
|
||||
deleteSecretHandler := api.NewDeleteSecretHandler(logger, s.ch)
|
||||
createSecretHandler := api.NewCreateSecretHandler(logger, s.ah)
|
||||
deleteSecretHandler := api.NewDeleteSecretHandler(logger, s.ah)
|
||||
|
||||
variablesHandler := api.NewVariablesHandler(logger, s.readDB)
|
||||
createVariableHandler := api.NewCreateVariableHandler(logger, s.ch)
|
||||
deleteVariableHandler := api.NewDeleteVariableHandler(logger, s.ch)
|
||||
createVariableHandler := api.NewCreateVariableHandler(logger, s.ah)
|
||||
deleteVariableHandler := api.NewDeleteVariableHandler(logger, s.ah)
|
||||
|
||||
userHandler := api.NewUserHandler(logger, s.readDB)
|
||||
usersHandler := api.NewUsersHandler(logger, s.readDB)
|
||||
createUserHandler := api.NewCreateUserHandler(logger, s.ch)
|
||||
updateUserHandler := api.NewUpdateUserHandler(logger, s.ch)
|
||||
deleteUserHandler := api.NewDeleteUserHandler(logger, s.ch)
|
||||
createUserHandler := api.NewCreateUserHandler(logger, s.ah)
|
||||
updateUserHandler := api.NewUpdateUserHandler(logger, s.ah)
|
||||
deleteUserHandler := api.NewDeleteUserHandler(logger, s.ah)
|
||||
|
||||
createUserLAHandler := api.NewCreateUserLAHandler(logger, s.ch)
|
||||
deleteUserLAHandler := api.NewDeleteUserLAHandler(logger, s.ch)
|
||||
updateUserLAHandler := api.NewUpdateUserLAHandler(logger, s.ch)
|
||||
createUserLAHandler := api.NewCreateUserLAHandler(logger, s.ah)
|
||||
deleteUserLAHandler := api.NewDeleteUserLAHandler(logger, s.ah)
|
||||
updateUserLAHandler := api.NewUpdateUserLAHandler(logger, s.ah)
|
||||
|
||||
createUserTokenHandler := api.NewCreateUserTokenHandler(logger, s.ch)
|
||||
deleteUserTokenHandler := api.NewDeleteUserTokenHandler(logger, s.ch)
|
||||
createUserTokenHandler := api.NewCreateUserTokenHandler(logger, s.ah)
|
||||
deleteUserTokenHandler := api.NewDeleteUserTokenHandler(logger, s.ah)
|
||||
|
||||
userOrgsHandler := api.NewUserOrgsHandler(logger, s.ch)
|
||||
userOrgsHandler := api.NewUserOrgsHandler(logger, s.ah)
|
||||
|
||||
orgHandler := api.NewOrgHandler(logger, s.readDB)
|
||||
orgsHandler := api.NewOrgsHandler(logger, s.readDB)
|
||||
createOrgHandler := api.NewCreateOrgHandler(logger, s.ch)
|
||||
deleteOrgHandler := api.NewDeleteOrgHandler(logger, s.ch)
|
||||
createOrgHandler := api.NewCreateOrgHandler(logger, s.ah)
|
||||
deleteOrgHandler := api.NewDeleteOrgHandler(logger, s.ah)
|
||||
|
||||
remoteSourceHandler := api.NewRemoteSourceHandler(logger, s.readDB)
|
||||
remoteSourcesHandler := api.NewRemoteSourcesHandler(logger, s.readDB)
|
||||
createRemoteSourceHandler := api.NewCreateRemoteSourceHandler(logger, s.ch)
|
||||
deleteRemoteSourceHandler := api.NewDeleteRemoteSourceHandler(logger, s.ch)
|
||||
createRemoteSourceHandler := api.NewCreateRemoteSourceHandler(logger, s.ah)
|
||||
deleteRemoteSourceHandler := api.NewDeleteRemoteSourceHandler(logger, s.ah)
|
||||
|
||||
router := mux.NewRouter()
|
||||
apirouter := router.PathPrefix("/api/v1alpha").Subrouter().UseEncodedPath()
|
||||
|
|
|
@ -29,7 +29,7 @@ import (
|
|||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/sorintlab/agola/internal/db"
|
||||
"github.com/sorintlab/agola/internal/services/config"
|
||||
"github.com/sorintlab/agola/internal/services/configstore/command"
|
||||
action "github.com/sorintlab/agola/internal/services/configstore/action"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
"github.com/sorintlab/agola/internal/testutil"
|
||||
"github.com/sorintlab/agola/internal/util"
|
||||
|
@ -186,7 +186,7 @@ func TestResync(t *testing.T) {
|
|||
time.Sleep(1 * time.Second)
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
if _, err := cs1.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: fmt.Sprintf("user%d", i)}); err != nil {
|
||||
if _, err := cs1.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: fmt.Sprintf("user%d", i)}); err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
|
@ -200,7 +200,7 @@ func TestResync(t *testing.T) {
|
|||
|
||||
// Do some more changes
|
||||
for i := 11; i < 20; i++ {
|
||||
if _, err := cs1.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: fmt.Sprintf("user%d", i)}); err != nil {
|
||||
if _, err := cs1.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: fmt.Sprintf("user%d", i)}); err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
|
@ -314,7 +314,7 @@ func TestUser(t *testing.T) {
|
|||
time.Sleep(2 * time.Second)
|
||||
|
||||
t.Run("create user", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: "user01"})
|
||||
_, err := cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user01"})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
@ -325,7 +325,7 @@ func TestUser(t *testing.T) {
|
|||
|
||||
t.Run("create duplicated user", func(t *testing.T) {
|
||||
expectedErr := fmt.Sprintf("user with name %q already exists", "user01")
|
||||
_, err := cs.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: "user01"})
|
||||
_, err := cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user01"})
|
||||
if err == nil {
|
||||
t.Fatalf("expected error %v, got nil err", expectedErr)
|
||||
}
|
||||
|
@ -342,7 +342,7 @@ func TestUser(t *testing.T) {
|
|||
wg := sync.WaitGroup{}
|
||||
for i := 0; i < 10; i++ {
|
||||
wg.Add(1)
|
||||
go cs.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: "user02"})
|
||||
go cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user02"})
|
||||
wg.Done()
|
||||
}
|
||||
wg.Wait()
|
||||
|
@ -382,11 +382,11 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
// TODO(sgotti) change the sleep with a real check that all is ready
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
user, err := cs.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: "user01"})
|
||||
user, err := cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user01"})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
org, err := cs.ch.CreateOrg(ctx, &types.Organization{Name: "org01"})
|
||||
org, err := cs.ah.CreateOrg(ctx, &types.Organization{Name: "org01"})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
@ -395,37 +395,37 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
time.Sleep(2 * time.Second)
|
||||
|
||||
t.Run("create a project in user root project group", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
})
|
||||
t.Run("create a project in org root project group", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
})
|
||||
t.Run("create a projectgroup in user root project group", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProjectGroup(ctx, &types.ProjectGroup{Name: "projectgroup01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic})
|
||||
_, err := cs.ah.CreateProjectGroup(ctx, &types.ProjectGroup{Name: "projectgroup01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
})
|
||||
t.Run("create a projectgroup in org root project group", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProjectGroup(ctx, &types.ProjectGroup{Name: "projectgroup01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic})
|
||||
_, err := cs.ah.CreateProjectGroup(ctx, &types.ProjectGroup{Name: "projectgroup01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
})
|
||||
t.Run("create a project in user non root project group with same name as a root project", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
})
|
||||
t.Run("create a project in org non root project group with same name as a root project", func(t *testing.T) {
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
@ -434,7 +434,7 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
t.Run("create duplicated project in user root project group", func(t *testing.T) {
|
||||
projectName := "project01"
|
||||
expectedErr := fmt.Sprintf("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, projectName))
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
|
@ -442,7 +442,7 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
t.Run("create duplicated project in org root project group", func(t *testing.T) {
|
||||
projectName := "project01"
|
||||
expectedErr := fmt.Sprintf("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, projectName))
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
|
@ -451,7 +451,7 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
t.Run("create duplicated project in user non root project group", func(t *testing.T) {
|
||||
projectName := "project01"
|
||||
expectedErr := fmt.Sprintf("project with name %q, path %q already exists", projectName, path.Join("user", user.Name, "projectgroup01", projectName))
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
t.Run("create duplicated project in org non root project group", func(t *testing.T) {
|
||||
projectName := "project01"
|
||||
expectedErr := fmt.Sprintf("project with name %q, path %q already exists", projectName, path.Join("org", org.Name, "projectgroup01", projectName))
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: projectName, Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("org", org.Name, "projectgroup01")}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
|
@ -467,14 +467,14 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
|
||||
t.Run("create project in unexistent project group", func(t *testing.T) {
|
||||
expectedErr := `project group with id "unexistentid" doesn't exist`
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: "unexistentid"}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: "unexistentid"}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
})
|
||||
t.Run("create project without parent id specified", func(t *testing.T) {
|
||||
expectedErr := "project parent id required"
|
||||
_, err := cs.ch.CreateProject(ctx, &types.Project{Name: "project01", Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
_, err := cs.ah.CreateProject(ctx, &types.Project{Name: "project01", Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
if err.Error() != expectedErr {
|
||||
t.Fatalf("expected err %v, got err: %v", expectedErr, err)
|
||||
}
|
||||
|
@ -489,7 +489,7 @@ func TestProjectGroupsAndProjects(t *testing.T) {
|
|||
wg := sync.WaitGroup{}
|
||||
for i := 0; i < 10; i++ {
|
||||
wg.Add(1)
|
||||
go cs.ch.CreateProject(ctx, &types.Project{Name: "project02", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
go cs.ah.CreateProject(ctx, &types.Project{Name: "project02", Parent: types.Parent{Type: types.ConfigTypeProjectGroup, ID: path.Join("user", user.Name)}, Visibility: types.VisibilityPublic, RemoteRepositoryConfigType: types.RemoteRepositoryConfigTypeManual})
|
||||
wg.Done()
|
||||
}
|
||||
wg.Wait()
|
||||
|
@ -529,11 +529,11 @@ func TestOrgMembers(t *testing.T) {
|
|||
// TODO(sgotti) change the sleep with a real check that all is ready
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
user, err := cs.ch.CreateUser(ctx, &command.CreateUserRequest{UserName: "user01"})
|
||||
user, err := cs.ah.CreateUser(ctx, &action.CreateUserRequest{UserName: "user01"})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
org, err := cs.ch.CreateOrg(ctx, &types.Organization{Name: "org01", CreatorUserID: user.ID})
|
||||
org, err := cs.ah.CreateOrg(ctx, &types.Organization{Name: "org01", CreatorUserID: user.ID})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
@ -542,13 +542,13 @@ func TestOrgMembers(t *testing.T) {
|
|||
time.Sleep(2 * time.Second)
|
||||
|
||||
t.Run("test user org creator is org member with owner role", func(t *testing.T) {
|
||||
expectedResponse := []*command.UserOrgsResponse{
|
||||
expectedResponse := []*action.UserOrgsResponse{
|
||||
{
|
||||
Organization: org,
|
||||
Role: types.MemberRoleOwner,
|
||||
},
|
||||
}
|
||||
res, err := cs.ch.GetUserOrgs(ctx, user.ID)
|
||||
res, err := cs.ah.GetUserOrgs(ctx, user.ID)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
@ -559,7 +559,7 @@ func TestOrgMembers(t *testing.T) {
|
|||
|
||||
orgs := []*types.Organization{}
|
||||
for i := 0; i < 10; i++ {
|
||||
org, err := cs.ch.CreateOrg(ctx, &types.Organization{Name: fmt.Sprintf("org%d", i), CreatorUserID: user.ID})
|
||||
org, err := cs.ah.CreateOrg(ctx, &types.Organization{Name: fmt.Sprintf("org%d", i), CreatorUserID: user.ID})
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
@ -568,26 +568,26 @@ func TestOrgMembers(t *testing.T) {
|
|||
}
|
||||
|
||||
for i := 0; i < 5; i++ {
|
||||
if err := cs.ch.DeleteOrg(ctx, fmt.Sprintf("org%d", i)); err != nil {
|
||||
if err := cs.ah.DeleteOrg(ctx, fmt.Sprintf("org%d", i)); err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// delete some org and check that if also orgmembers aren't yet cleaned only the existing orgs are reported
|
||||
t.Run("test only existing orgs are reported", func(t *testing.T) {
|
||||
expectedResponse := []*command.UserOrgsResponse{
|
||||
expectedResponse := []*action.UserOrgsResponse{
|
||||
{
|
||||
Organization: org,
|
||||
Role: types.MemberRoleOwner,
|
||||
},
|
||||
}
|
||||
for i := 5; i < 10; i++ {
|
||||
expectedResponse = append(expectedResponse, &command.UserOrgsResponse{
|
||||
expectedResponse = append(expectedResponse, &action.UserOrgsResponse{
|
||||
Organization: orgs[i],
|
||||
Role: types.MemberRoleOwner,
|
||||
})
|
||||
}
|
||||
res, err := cs.ch.GetUserOrgs(ctx, user.ID)
|
||||
res, err := cs.ah.GetUserOrgs(ctx, user.ID)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected err: %v", err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue