|
|
преди 5 години | |
|---|---|---|
| .. | ||
| cmd | преди 5 години | |
| migrations | преди 5 години | |
| pkg | преди 5 години | |
| .dockerignore | преди 5 години | |
| .gitignore | преди 5 години | |
| Dockerfile | преди 5 години | |
| Makefile | преди 5 години | |
| README.md | преди 5 години | |
| ci.env | преди 5 години | |
| docker-compose.yml | преди 5 години | |
| example.env | преди 5 години | |
| go.mod | преди 5 години | |
| go.sum | преди 5 години | |
| init.sql | преди 5 години | |
| test.env | преди 5 години | |
This is the backend part of the music player, written in Golang.
Run make build inside this directory. Binaries will be built and output to the bin directory (which will be created if it does not exist).
Run make test inside this directory, to run unit and integration tests.
First, make sure the following environment variables are set:
POSTGRES_HOSTPOSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_PORT (optional, defaults to 5432)POSTGRES_DATABASEThen, run:
make migrateAfter getting the migrate CLI tool, run:
NAME=create_some_table make migrate.makeThis is intended to be run as a scheduled job. It will scan a directory and add relevant metadata to a PostgreSQL database.
Development usage
make run.scan
Development usage
make run.server
This is an HTTP server running the following endpoints:
GET /stream?songid=<id>Streams an audio file based on the songid value in the query string.
GET /pubsubHandles long-running client connections, initiating a websocket.
GET /artistsFetches all artists, and outputs them in JSON format.
GET /albums?artist=<artist>Fetches albums for a particular artist, and outputs them in JSON format.
GET /songs?artist=<artist>Fetches songs for a particular artist, and outputs them in JSON format.
GET /song-info?id=<id>Fetches info for a particular song, based on its ID, and outputs it in JSON format.
GET /next-song?id=<id>Fetches next song info.
GET /prev-song?id=<id>Fetches previous song info.