README
¶
OPG Modernising LPA
OPG Modernising LPA Documentation
Documentation for the service can be found in the /docs/ folder.
Getting Started
Prerequisites
- Docker and docker-compose
- Nodejs and Yarn
Installation
Install dependencies for development
yarn install
Bring the service up
make up
Run Cypress tests
make run-cypress
Cypress is run locally rather than in docker. To ensure version parity of nodeJS use a version manager, such as asdf, to parse .tool-versions
:
asdf install
Local development
To run the app in dev mode:
make up-dev
Dev mode adds hot reloading via air which
will watch .go
and .gohtml
for changes and recompile the app.
It also enables debugging via delve. Delve
runs on localhost:2345
- add this to your editor/IDE debug config settings and
then add breakpoints to step through the app code when running on
localhost. Example VSCode debug config:
{
"name": "Go remote debug",
"type": "go",
"request": "attach",
"mode": "remote",
"port": 2345,
"host": "127.0.0.1",
"trace": "verbose"
}
Pact
We use Pact for contract tests. To install the necessary tools to run the tests do:
go install github.com/pact-foundation/pact-go/v2
pact-go install
Code generation
We make use of mockery for generating mocks
and enumerator for generating enums. To use you'll need
to go install ./cmd/enumerator
, then running make go-generate
will
create code from any declarations.
Licence
The OPG Modernising LPA code in this repository is released under the MIT license, a copy of which can be found in LICENCE.
Directories
¶
Path | Synopsis |
---|---|
app
module
|
|
cmd
|
|
create-s3-replication-job
Create S3 replication job is an AWS Lambda function used to create an S3 Batch Replication Job to copy files from one S3 bucket to another.
|
Create S3 replication job is an AWS Lambda function used to create an S3 Batch Replication Job to copy files from one S3 bucket to another. |
enumerator
Enumerator is a tool to automate the creation of simple enums.
|
Enumerator is a tool to automate the creation of simple enums. |
event-logger
Event logger is a tool to capture sqs events and display the most recent as a HTML page.
|
Event logger is a tool to capture sqs events and display the most recent as a HTML page. |
event-received
Event received is an AWS Lambda function to handle incoming events.
|
Event received is an AWS Lambda function to handle incoming events. |
mock-notify
Mock notify is a mock for GOV.UK's Notify service.
|
Mock notify is a mock for GOV.UK's Notify service. |
mock-os-api
Mock OS API is a mock for Ordnance Survey's Places API
|
Mock OS API is a mock for Ordnance Survey's Places API |
internal
module
|
|
mocks
|
|
GOVUKNotify
Module
|
|
GOVUKSignIn
Module
|
|
OrdnanceSurveyPlacesAPI
Module
|