Server for Dalal Street
Prerequisites
Check prerequisites
Check the go version installed.
Check protobuf installation.
Setup SECRET_KEY
environment variable to some string
Build instructions
Download the repository and cd
into it.
go get github.com/delta/dalal-street-server
cd $GOPATH/src/github.com/delta/dalal-street-server
go get -v ./...
go get -v github.com/gemnasium/migrate
go get -v gopkg.in/jarcoal/httpmock.v1
go get -v github.com/golang/protobuf/proto
go get -v github.com/golang/protobuf/protoc-gen-go
go get -v github.com/sendgrid/sendgrid-go
go get -v github.com/delta/plivo-go
git submodule init
git submodule update --recursive
Create databases and run migrations
mysql -u root -p -e "CREATE DATABASE dalalstreet_dev; CREATE DATABASE dalalstreet_test;"
migrate -url "mysql://root:YOUR_MYSQL_ROOT_PASSWORD@/dalalstreet_dev" -path ./migrations up
Run cp config.json.example config.json
Fill in the database credentials in the Dev
section of config.json .
Run go run main.go
Create Migrations
migrate -url "mysql://root:YOUR_MYSQL_ROOT_PASSWORD@/dalalstreet_dev" -path ./migrations create migration_file_xyz
Tests
Run the test script locally before pushing commits.
Docker usage instructions
Install docker and docker-compose .
Run cp .env.example .env
. Fill in the DB_NAME and DB_PASS in .env . These are the credentials for the database container.
Use the same credentials in Docker
section config.json (DbName and DbPassword ) and docker-entry.sh (in the migrate
command).
Run docker-compose up
.
Once the containers are up, you can get shell access by using
docker exec -it <CONTAINER_ID> bash
GoMock usage instructions
To generate mock for a file using mockgen, place this comment after import statement
//go:generate mockgen -source {YOUR_FILE_NAME}.go -destination ../mocks/{YOUR_FILE_NAME}.go -package mocks
To generate mocks for all packages that has above comment
To manually generate a mock package
mockgen -destination=mocks/{YOUR_FILE_NAME}.go -package=mocks {PATH_TO_YOUR_FILE}