Skip to content

Commit

Permalink
Added TotalCount for Company Contributors Response (#3531)
Browse files Browse the repository at this point in the history
  • Loading branch information
dealako authored Jun 2, 2022
1 parent 2ffb7fb commit 44a9544
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 34 deletions.
50 changes: 30 additions & 20 deletions cla-backend-go/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,24 @@ COMMIT := $(shell sh -c 'git rev-parse --short HEAD')
LDFLAGS=-ldflags "-s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.branch=$(BRANCH) -X main.buildDate=$(BUILD_TIME)"
BUILD_TAGS=-tags aws_lambda

ifeq "$(shell uname -s)" "Darwin"
BUILD_HOST=darwin
endif
ifeq "$(shell uname -s)" "Linux"
BUILD_HOST=linux
endif

LINT_TOOL=$(shell go env GOPATH)/bin/golangci-lint
LINT_VERSION=v1.41.1
LINT_VERSION=v1.46.2
SWAGGER_DIR=$(ROOT_DIR)/swagger
SWAGGER_BIN_DIR=/usr/local/bin
SWAGGER_TOOL_VERSION=v0.24.0
SWAGGER_ASSET="swagger_$(BUILD_HOST)_amd64"
SWAGGER_ASSET_URL="https://github.com/go-swagger/go-swagger/releases/download/$(SWAGGER_TOOL_VERSION)/$(SWAGGER_ASSET)"
GO_PKGS=$(shell go list ./... | grep -v /vendor/ | grep -v /node_modules/)
GO_FILES=$(shell find . -type f -name '*.go' -not -path './vendor/*')

.PHONY: generate setup tool-setup setup-dev setup-deploy clean-all clean swagger up fmt test run deps build build-mac build-aws-lambda user-subscribe-lambda qc lint
.PHONY: generate setup setup-dev setup-deploy clean-all clean swagger up fmt test run deps build build-mac build-aws-lambda user-subscribe-lambda qc lint

all: all-mac
all-mac: clean swagger deps fmt build-mac build-aws-lambda-mac build-user-subscribe-lambda-mac build-metrics-lambda-mac build-dynamo-events-lambda-mac build-zipbuilder-scheduler-lambda-mac build-zipbuilder-lambda-mac build-gitlab-repository-check-lambda-mac test lint
Expand All @@ -40,27 +51,26 @@ generate: swagger

setup: $(LINT_TOOL) setup-dev setup-deploy

tool-setup:
@echo "Installing gobin for installing tools..."
@# gobin is the equivalent of 'go get' whilst in module-aware mode but this does not modify your go.mod
#GO111MODULE=off go get -u github.com/myitcv/gobin
go get -u github.com/myitcv/gobin
.PHONY: swagger-tool
swagger-tool:
@echo "Removing old swagger binary in $(SWAGGER_BIN_DIR)..."
@sudo rm -Rf $(SWAGGER_BIN_DIR)/swagger
@echo "Downloading $(SWAGGER_ASSET_URL)"
sudo curl -o $(SWAGGER_BIN_DIR)/swagger -L'#' $(SWAGGER_ASSET_URL)
sudo chmod +x $(SWAGGER_BIN_DIR)/swagger
$(SWAGGER_BIN_DIR)/swagger version

setup_dev: setup-dev
setup-dev: tool-setup
@echo "Removing previously install version of swagger..."
@rm -Rf $(shell echo $(GOPATH))/bin/swagger $(shell echo $(GOPATH))/src/github.com/go-swagger
@echo "Installing swagger version: '$(SWAGGER_TOOL_VERSION)'..."
gobin github.com/go-swagger/go-swagger/cmd/swagger@$(SWAGGER_TOOL_VERSION)
@echo "Installing goimports..."
gobin golang.org/x/tools/cmd/goimports
@echo "Installing cover..."
gobin golang.org/x/tools/cmd/cover
@echo "Installing multi-file-swagger tool..."
@echo "Downloading golangci-lint version $(LINT_VERSION)..."
setup-dev: swagger-tool
pushd /tmp && echo "Installing goimport..." && go install golang.org/x/tools/cmd/goimports@latest && echo "Installation coverage tools..." && go install golang.org/x/tools/cmd/cover@latest && popd

@echo "Installing linter..."
@# Latest releases: https://github.com/golangci/golangci-lint/releases
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(shell go env GOPATH)/bin $(LINT_VERSION)
cd $(dir $(realpath $(firstword $(MAKEFILE_LIST))))swagger && pip3 install virtualenv && virtualenv .venv && source .venv/bin/activate && pip3 install -r requirements.txt
go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(LINT_VERSION)
echo "golangci-lint version:" && golangci-lint version

@echo "Installing multi-file-swagger tool..."
cd $(dir $(realpath $(firstword $(MAKEFILE_LIST))))swagger && pip3 install virtualenv && virtualenv .venv && source .venv/bin/activate && python -m pip install --upgrade pip && pip3 install -r requirements.txt

setup_deploy: setup-deploy
setup-deploy:
Expand Down
4 changes: 2 additions & 2 deletions cla-backend-go/cmd/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ func createUserFromRequest(authorizer auth.Authorizer, usersService users.Servic
// search if user exist in database by username
userModel, err := usersService.GetUserByLFUserName(claUser.LFUsername)
if err != nil {
if err, ok := err.(*utils.UserNotFound); ok {
if _, ok := err.(*utils.UserNotFound); ok {
log.WithFields(f).Debug("unable to locate user by lf-email")
} else {
log.WithFields(f).WithError(err).Warn("searching user by lf-username failed")
Expand All @@ -649,7 +649,7 @@ func createUserFromRequest(authorizer auth.Authorizer, usersService users.Servic
// search if user exist in database by username
userModel, err = usersService.GetUserByEmail(claUser.LFEmail)
if err != nil {
if err, ok := err.(*utils.UserNotFound); ok {
if _, ok := err.(*utils.UserNotFound); ok {
log.WithFields(f).Debug("unable to locate user by lf-email")
} else {
log.WithFields(f).WithError(err).Warn("searching user by lf-email failed")
Expand Down
2 changes: 1 addition & 1 deletion cla-backend-go/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ require (
github.com/pelletier/go-toml v1.9.3 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rogpeppe/go-internal v1.8.0 // indirect
github.com/rogpeppe/go-internal v1.8.1 // indirect
github.com/spf13/afero v1.6.0 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
Expand Down
2 changes: 2 additions & 0 deletions cla-backend-go/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg=
github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ properties:
type: integer
format: int64
x-omitempty: false
totalCount:
type: integer
format: int64
x-omitempty: false
list:
type: array
items:
Expand Down
25 changes: 14 additions & 11 deletions cla-backend-go/v2/company/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,14 @@ var (

// constants
const (
// used when we want to query all data from dependent service.
// HugePageSize is used when we want to query all data from dependent service
HugePageSize = int64(10000)
// LoadRepoDetails = true

DontLoadRepoDetails = false
//NoAccount

// NoAccount constant
NoAccount = "Individual - No Account"

//OrgAssociated stating whether user has user association with another org
OrgAssociated = "are already associated with other organization"
)
Expand All @@ -85,7 +87,6 @@ const (
type Service interface {
GetCompanyProjectCLAManagers(ctx context.Context, v1CompanyModel *models.Company, projectSFID string) (*models.CompanyClaManagers, error)
GetCompanyProjectActiveCLAs(ctx context.Context, companyID string, projectSFID string) (*models.ActiveClaList, error)
//GetCompanyProjectContributors(ctx context.Context, projectSFID string, companySFID string, searchTerm string) (*models.CorporateContributorList, error)
GetCompanyProjectContributors(ctx context.Context, params *v2Ops.GetCompanyProjectContributorsParams) (*models.CorporateContributorList, error)
GetCompanyProjectCLA(ctx context.Context, authUser *auth.User, companySFID, projectSFID string, companyID *string) (*models.CompanyProjectClaList, error)
CreateCompany(ctx context.Context, params *v2Ops.CreateCompanyParams) (*models.CompanyOutput, error)
Expand All @@ -102,7 +103,7 @@ type Service interface {
GetCompanyAdmins(ctx context.Context, companyID string) (*models.CompanyAdminList, error)
RequestCompanyAdmin(ctx context.Context, userID string, claManagerEmail string, claManagerName string, contributorName string, contributorEmail string, projectName string, companyName string, lFxPortalURL string) error

// org service lookup
// GetCompanyLookup uses the org service to lookup the value
GetCompanyLookup(ctx context.Context, companyName string, websiteName string) (*models.Lookup, error)
}

Expand Down Expand Up @@ -137,7 +138,7 @@ func (s *service) GetCompanyProjectCLAManagers(ctx context.Context, v1CompanyMod
"signingEntityName": v1CompanyModel.SigningEntityName,
}

// TODO: DAD - separate go routine
// TODO: DAD - consider using separate go routine
log.WithFields(f).Debugf("locating CLA Group(s) under project or foundation...")
var err error
claGroups, err := s.getCLAGroupsUnderProjectOrFoundation(ctx, projectSFID)
Expand All @@ -146,15 +147,15 @@ func (s *service) GetCompanyProjectCLAManagers(ctx context.Context, v1CompanyMod
return nil, err
}

// TODO: DAD - separate go routine
// TODO: DAD - consider using separate go routine
// get the org client for org info filling
orgClient := orgService.GetClient()
orgModel, err := orgClient.GetOrganization(ctx, v1CompanyModel.CompanyExternalID)
if err != nil {
return nil, fmt.Errorf("fetching org model failed for companySFID : %s : %w", v1CompanyModel.CompanyExternalID, err)
}

// TODO: DAD - separate go routine
// TODO: DAD - consider using separate go routine
signed, approved := true, true
maxLoad := int64(10)
var sigs []*v1Models.Signature
Expand Down Expand Up @@ -202,7 +203,7 @@ func (s *service) GetCompanyProjectCLAManagers(ctx context.Context, v1CompanyMod
return &models.CompanyClaManagers{List: claManagers}, nil
}

// TODO: DAD - separate go routine
// TODO: DAD - consider using separate go routine
// get userinfo and project info
var usermap map[string]*v2UserServiceModels.User
usermap, err = getUsersInfo(lfUsernames.List())
Expand All @@ -216,7 +217,7 @@ func (s *service) GetCompanyProjectCLAManagers(ctx context.Context, v1CompanyMod
// fill project info
fillProjectInfo(claManagers, claGroups)

// TODO: DAD - separate go routine
// TODO: DAD - consider using separate go routine
// fetch the cla_manager.added events so can fill the addedOn field
claManagerAddedEvents, err := s.eventService.GetCompanyEvents(v1CompanyModel.CompanyID, events.ClaManagerCreated, nil, aws.Int64(100), true)
if err != nil {
Expand Down Expand Up @@ -337,6 +338,7 @@ func (s *service) GetCompanyProjectContributors(ctx context.Context, params *v2O
"projectSFID": params.ProjectSFID,
"companyID": params.CompanyID,
}

if params.SearchTerm != nil {
f["searchTerm"] = utils.StringValue(params.SearchTerm)
}
Expand All @@ -360,7 +362,7 @@ func (s *service) GetCompanyProjectContributors(ctx context.Context, params *v2O
List: list,
}, nil
}
log.WithFields(f).Debugf("found %d signatures", len(sigResponse.Signatures))
log.WithFields(f).Debugf("found %d signatures matching filter critiera - total in database is: %d", len(sigResponse.Signatures), sigResponse.TotalCount)

beforeQuery, _ := utils.CurrentTime()
var wg sync.WaitGroup
Expand All @@ -385,6 +387,7 @@ func (s *service) GetCompanyProjectContributors(ctx context.Context, params *v2O
List: list,
NextKey: sigResponse.LastKeyScanned,
ResultCount: sigResponse.ResultCount,
TotalCount: sigResponse.TotalCount,
}, nil
}

Expand Down

0 comments on commit 44a9544

Please sign in to comment.