events

package
v1.0.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 14, 2020 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

nolint

Index

Constants

View Source
const (

	// CreateTemplate event type
	CreateTemplate = "Create Template"

	// AddGithubOrgToWL event type
	AddGithubOrgToWL = "Add GH Org To WL"
	// DeleteGithubOrgFromWL event type
	DeleteGithubOrgFromWL = "Delete GH Org From WL"

	// CreateCCLAWhitelistRequest event type
	CreateCCLAWhitelistRequest = "Create CCLA WL Request"
	// DeleteCCLAWhitelistRequest event type
	DeleteCCLAWhitelistRequest = "Delete CCLA WL Request"

	// DeletePendingInvite event type
	AddGithubOrganization    = "Add Github Organization"
	DeleteGithubOrganization = "Delete Github Organization"
)

event types

View Source
const (
	CLATemplateCreated = "cla_template.created"
	UserCreated        = "user.created"
	UserUpdated        = "user.updated"
	UserDeleted        = "user.deleted"

	GithubRepositoryAdded   = "github_repository.added"
	GithubRepositoryDeleted = "github_repository.deleted"

	GerritRepositoryAdded   = "gerrit_repository.addded"
	GerritRepositoryDeleted = "gerrit_repository.deleted"

	GithubOrganizationAdded   = "github_organization.added"
	GithubOrganizationDeleted = "github_organization.deleted"

	CompanyACLUserAdded      = "company_acl.user_added"
	CompanyACLRequestAdded   = "company_acl.request_added"
	CompanyACLRequestDeleted = "company_acl.request_deleted"

	CCLAWhitelistRequestCreated = "ccla_whitelist_request.created"
	CCLAWhitelistRequestDeleted = "ccla_whitelist_request.deleted"

	WhitelistGithubOrganizationAdded   = "whitelist.github_organization_added"
	WhitelistGithubOrganizationDeleted = "whitelist.github_organization_deleted"

	ClaManagerAccessRequestAdded   = "cla_manager.access_request_added"
	ClaManagerAccessRequestDeleted = "cla_manager.access_request_deleted"

	ProjectCreated = "project.created"
	ProjectUpdated = "project.updated"
	ProjectDeleted = "project.deleted"

	InvalidatedSignature = "signature.invalidated"
)

events naming convention : <resource>.<action>

Variables

View Source
var (
	ErrUserIDRequired    = errors.New("UserID cannot be empty")    //nolint
	ErrEventTypeRequired = errors.New("EventType cannot be empty") //nolint
)

errors

Functions

func Configure

func Configure(api *operations.ClaAPI, service Service)

Configure setups handlers on api with service

Types

type CCLAWhitelistRequestCreatedEventData added in v1.0.13

type CCLAWhitelistRequestCreatedEventData struct {
	RequestID string
}

func (*CCLAWhitelistRequestCreatedEventData) GetEventString added in v1.0.13

func (ed *CCLAWhitelistRequestCreatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type CCLAWhitelistRequestDeletedEventData added in v1.0.13

type CCLAWhitelistRequestDeletedEventData struct {
	RequestID string
}

func (*CCLAWhitelistRequestDeletedEventData) GetEventString added in v1.0.13

func (ed *CCLAWhitelistRequestDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type CLATemplateCreatedEventData added in v1.0.13

type CLATemplateCreatedEventData struct{}

func (*CLATemplateCreatedEventData) GetEventString added in v1.0.13

func (ed *CLATemplateCreatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type ClaManagerAccessRequestAddedEventData added in v1.0.13

type ClaManagerAccessRequestAddedEventData struct {
	ProjectName string
	CompanyName string
}

func (*ClaManagerAccessRequestAddedEventData) GetEventString added in v1.0.13

func (ed *ClaManagerAccessRequestAddedEventData) GetEventString(args *LogEventArgs) (string, bool)

type ClaManagerAccessRequestDeletedEventData added in v1.0.13

type ClaManagerAccessRequestDeletedEventData struct {
	RequestID string
}

func (*ClaManagerAccessRequestDeletedEventData) GetEventString added in v1.0.13

func (ed *ClaManagerAccessRequestDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type CombinedRepo added in v1.0.13

type CombinedRepo interface {
	GetProjectByID(projectID string) (*models.Project, error)
	GetCompany(companyID string) (*models.Company, error)
	GetUserByUserName(userName string, fullMatch bool) (*models.User, error)
	GetUser(userID string) (*models.User, error)
}

CombinedRepo contains the various methods of other repositories

type CompanyACLRequestAddedEventData added in v1.0.13

type CompanyACLRequestAddedEventData struct {
	UserID string
}

func (*CompanyACLRequestAddedEventData) GetEventString added in v1.0.13

func (ed *CompanyACLRequestAddedEventData) GetEventString(args *LogEventArgs) (string, bool)

type CompanyACLRequestDeletedEventData added in v1.0.13

type CompanyACLRequestDeletedEventData struct {
	UserLFID string
}

func (*CompanyACLRequestDeletedEventData) GetEventString added in v1.0.13

func (ed *CompanyACLRequestDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type CompanyACLUserAddedEventData added in v1.0.13

type CompanyACLUserAddedEventData struct {
	UserLFID string
}

func (*CompanyACLUserAddedEventData) GetEventString added in v1.0.13

func (ed *CompanyACLUserAddedEventData) GetEventString(args *LogEventArgs) (string, bool)

type DBProjectDocumentModel added in v1.0.13

type DBProjectDocumentModel struct {
	DocumentName            string `dynamodbav:"document_name"`
	DocumentFileID          string `dynamodbav:"document_file_id"`
	DocumentPreamble        string `dynamodbav:"document_preamble"`
	DocumentLegalEntityName string `dynamodbav:"document_legal_entity_name"`
	DocumentAuthorName      string `dynamodbav:"document_author_name"`
	DocumentContentType     string `dynamodbav:"document_content_type"`
	DocumentS3URL           string `dynamodbav:"document_s3_url"`
	DocumentMajorVersion    string `dynamodbav:"document_major_version"`
	DocumentMinorVersion    string `dynamodbav:"document_minor_version"`
	DocumentCreationDate    string `dynamodbav:"document_creation_date"`
}

DBProjectDocumentModel is a data model for the CLA Group Project documents

type DBProjectModel added in v1.0.13

type DBProjectModel struct {
	DateCreated                      string                   `dynamodbav:"date_created"`
	DateModified                     string                   `dynamodbav:"date_modified"`
	ProjectExternalID                string                   `dynamodbav:"project_external_id"`
	ProjectID                        string                   `dynamodbav:"project_id"`
	ProjectName                      string                   `dynamodbav:"project_name"`
	Version                          string                   `dynamodbav:"version"`
	ProjectCclaEnabled               bool                     `dynamodbav:"project_ccla_enabled"`
	ProjectCclaRequiresIclaSignature bool                     `dynamodbav:"project_ccla_requires_icla_signature"`
	ProjectIclaEnabled               bool                     `dynamodbav:"project_icla_enabled"`
	ProjectCorporateDocuments        []DBProjectDocumentModel `dynamodbav:"project_corporate_documents"`
	ProjectIndividualDocuments       []DBProjectDocumentModel `dynamodbav:"project_individual_documents"`
	ProjectMemberDocuments           []DBProjectDocumentModel `dynamodbav:"project_member_documents"`
	ProjectACL                       []string                 `dynamodbav:"project_acl"`
}

DBProjectModel data model

type DBUser added in v1.0.11

type DBUser struct {
	UserID             string   `json:"user_id"`
	UserExternalID     string   `json:"user_external_id"`
	LFEmail            string   `json:"lf_email"`
	Admin              bool     `json:"admin"`
	LFUsername         string   `json:"lf_username"`
	DateCreated        string   `json:"date_created"`
	DateModified       string   `json:"date_modified"`
	UserName           string   `json:"user_name"`
	Version            string   `json:"version"`
	UserEmails         []string `json:"user_emails"`
	UserGithubID       string   `json:"user_github_id"`
	UserCompanyID      string   `json:"user_company_id"`
	UserGithubUsername string   `json:"user_github_username"`
	Note               string   `json:"note"`
}

DBUser data model

type Event

type Event struct {
	EventID                string `dynamodbav:"event_id"`
	EventType              string `dynamodbav:"event_type"`
	UserID                 string `dynamodbav:"user_id"`
	UserName               string `dynamodbav:"user_name"`
	EventProjectID         string `dynamodbav:"event_project_id"`
	EventProjectExternalID string `dynamodbav:"event_project_external_id"`
	EventProjectName       string `dynamodbav:"event_project_name"`
	EventCompanyID         string `dynamodbav:"event_company_id"`
	EventCompanyName       string `dynamodbav:"event_company_name"`
	EventTime              string `dynamodbav:"event_time"`
	EventTimeEpoch         int64  `dynamodbav:"event_time_epoch"`
	EventData              string `dynamodbav:"event_data"`
}

Event data model

type EventData added in v1.0.13

type EventData interface {
	GetEventString(args *LogEventArgs) (eventData string, containsPII bool)
}

EventData returns event data string which is used for event logging and containsPII field

type GerritProjectDeletedEventData added in v1.0.13

type GerritProjectDeletedEventData struct{}

func (*GerritProjectDeletedEventData) GetEventString added in v1.0.13

func (ed *GerritProjectDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type GithubOrganizationAddedEventData added in v1.0.13

type GithubOrganizationAddedEventData struct {
	GithubOrganizationName string
}

func (*GithubOrganizationAddedEventData) GetEventString added in v1.0.13

func (ed *GithubOrganizationAddedEventData) GetEventString(args *LogEventArgs) (string, bool)

type GithubOrganizationDeletedEventData added in v1.0.13

type GithubOrganizationDeletedEventData struct {
	GithubOrganizationName string
}

func (*GithubOrganizationDeletedEventData) GetEventString added in v1.0.13

func (ed *GithubOrganizationDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type GithubProjectDeletedEventData added in v1.0.13

type GithubProjectDeletedEventData struct{}

func (*GithubProjectDeletedEventData) GetEventString added in v1.0.13

func (ed *GithubProjectDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type GithubRepositoryAddedEventData added in v1.0.13

type GithubRepositoryAddedEventData struct {
	RepositoryName string
}

func (*GithubRepositoryAddedEventData) GetEventString added in v1.0.13

func (ed *GithubRepositoryAddedEventData) GetEventString(args *LogEventArgs) (string, bool)

type GithubRepositoryDeletedEventData added in v1.0.13

type GithubRepositoryDeletedEventData struct {
	RepositoryName string
}

func (*GithubRepositoryDeletedEventData) GetEventString added in v1.0.13

func (ed *GithubRepositoryDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type LogEventArgs added in v1.0.13

type LogEventArgs struct {
	EventType         string
	ProjectID         string
	ProjectModel      *models.Project
	CompanyID         string
	CompanyModel      *models.Company
	LfUsername        string
	UserID            string
	UserModel         *models.User
	ExternalProjectID string
	EventData         EventData
	// contains filtered or unexported fields
}

LogEventArgs is argument to LogEvent function EventType, EventData are compulsory. One of LfUsername, UserID must be present

type MockRepository added in v1.0.8

type MockRepository interface {
	CreateEvent(event *models.Event) error
	SearchEvents(params *eventOps.SearchEventsParams, pageSize int64) (*models.EventList, error)
	GetProjectByID(projectID string) (*models.Project, error)
	GetCompany(companyID string) (*models.Company, error)
	GetUserByUserName(userName string, fullMatch bool) (*models.User, error)
	GetUser(userID string) (*models.User, error)
	GetRecentEvents(pageSize int64) (*models.EventList, error)
}

MockRepository interface defines methods of event mock repository

func NewMockRepository added in v1.0.8

func NewMockRepository() MockRepository

NewMockRepository creates a new instance of the mock event repository

type ProjectCreatedEventData added in v1.0.13

type ProjectCreatedEventData struct{}

func (*ProjectCreatedEventData) GetEventString added in v1.0.13

func (ed *ProjectCreatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type ProjectDeletedEventData added in v1.0.13

type ProjectDeletedEventData struct{}

func (*ProjectDeletedEventData) GetEventString added in v1.0.13

func (ed *ProjectDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type ProjectUpdatedEventData added in v1.0.13

type ProjectUpdatedEventData struct{}

func (*ProjectUpdatedEventData) GetEventString added in v1.0.13

func (ed *ProjectUpdatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type Repository

type Repository interface {
	CreateEvent(event *models.Event) error
	SearchEvents(params *eventOps.SearchEventsParams, pageSize int64) (*models.EventList, error)
	GetRecentEvents(pageSize int64) (*models.EventList, error)
}

Repository interface defines methods of event repository service

func NewRepository

func NewRepository(awsSession *session.Session, stage string) Repository

NewRepository creates a new instance of the event repository

type Service

type Service interface {
	LogEvent(args *LogEventArgs)
	SearchEvents(params *eventOps.SearchEventsParams) (*models.EventList, error)
	GetRecentEvents(paramPageSize *int64) (*models.EventList, error)
}

Service interface defines methods of event service

func NewService

func NewService(repo Repository, combinedRepo CombinedRepo) Service

NewService creates new instance of event service

type SignatureProjectInvalidatedEventData added in v1.0.13

type SignatureProjectInvalidatedEventData struct{}

func (*SignatureProjectInvalidatedEventData) GetEventString added in v1.0.13

func (ed *SignatureProjectInvalidatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type UserCreatedEventData added in v1.0.13

type UserCreatedEventData struct{}

func (*UserCreatedEventData) GetEventString added in v1.0.13

func (ed *UserCreatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type UserDeletedEventData added in v1.0.13

type UserDeletedEventData struct {
	DeletedUserID string
}

func (*UserDeletedEventData) GetEventString added in v1.0.13

func (ed *UserDeletedEventData) GetEventString(args *LogEventArgs) (string, bool)

type UserUpdatedEventData added in v1.0.13

type UserUpdatedEventData struct{}

func (*UserUpdatedEventData) GetEventString added in v1.0.13

func (ed *UserUpdatedEventData) GetEventString(args *LogEventArgs) (string, bool)

type WhitelistGithubOrganizationAddedEventData added in v1.0.13

type WhitelistGithubOrganizationAddedEventData struct {
	GithubOrganizationName string
}

func (*WhitelistGithubOrganizationAddedEventData) GetEventString added in v1.0.13

type WhitelistGithubOrganizationDeletedEventData added in v1.0.13

type WhitelistGithubOrganizationDeletedEventData struct {
	GithubOrganizationName string
}

func (*WhitelistGithubOrganizationDeletedEventData) GetEventString added in v1.0.13

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL