Documentation
¶
Overview ¶
Services used by API endpoint handlers and other bits of code. This is a collection of common things needed by code, such as:
- Access to an instance of logger
- AWS S3 API
- The current Mongo DB connection
- Facilities to send user notifications
- API configuration
among others
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ApiVersion string
NOTE: these 2 vars are set during compilation in gitlab CI build (see Makefile)
View Source
var GitHash string
Functions ¶
This section is empty.
Types ¶
type APIServices ¶
type APIServices struct {
// Configuration read in on startup
Config config.APIConfig
// Default logger
Log logger.ILogger
// This is configured on startup to talk to the configured AWSCloudwatchRegion
AWSSessionCW *session.Session
// Anything talking to S3 should use this
S3 s3iface.S3API
SNS awsutil.SNSInterface
// Anything accessing files should use this
FS fileaccess.FileAccess
// Validation of JWT tokens
JWTReader IJWTReader
// ID generator
IDGen IDGenerator
// URL signer for S3
Signer URLSigner
// Zip File Generator
Exporter ExportZipper
// Notification Handler
Notifications notifications.NotificationManager
// Timestamp retriever - so can be mocked for unit tests
TimeStamper timestamper.ITimeStamper
// Our mongo db connection
Mongo *mongo.Client
// "User DB"
Users pixlUser.UserDetailsLookup
// "Expression DB"
Expressions expressionStorage.ExpressionDB
}
APIServices contains any services that HTTP handlers would want to use, like logging/config reading
func InitAPIServices ¶
func InitAPIServices(cfg config.APIConfig, jwtReader IJWTReader, idGen IDGenerator, signer URLSigner, exporter ExportZipper) APIServices
InitAPIServices sets up a new APIServices instance
type ExportZipper ¶
type ExportZipper interface {
MakeExportFilesZip(*APIServices, string, string, string, string, string, []string, []string) ([]byte, error)
}
ExportZipper - Interface for creating an export zip file
type IDGenerator ¶
type IDGenerator interface {
GenObjectID() string
}
IDGenerator - Generates ID strings
type IJWTReader ¶
IJWTReader - User ID getter from HTTP request
type MockIDGenerator ¶
type MockIDGenerator struct {
IDs []string
}
Here we really just expose some test helpers
func (*MockIDGenerator) GenObjectID ¶
func (m *MockIDGenerator) GenObjectID() string
Click to show internal directories.
Click to hide internal directories.