- .Net Core 3.1
- SQL Server
-
(We run SQL Server from a Docker image)
- docker pull mcr.microsoft.com/mssql/server:2017-CU18-ubuntu-16.04
- docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=p455w0rD!.' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-CU18-ubuntu-16.04
-
Restore packages
- dotnet restore
-
Run migrations
- dotnet ef database update --startup-project ./src/Sheriff.WebApi/Sheriff.WebApi.csproj --project ./src/Sheriff.Infrastructure/Sheriff.Infrastructure.csproj
-
Build solution
- dotnet build
- Run WebApi
- dotnet run --project ./src/Sheriff.WebApi/Sheriff.WebApi.csproj;
-
Band Details
- Endpoint: GET https://localhost:5001/bands/{bandId}
-
Bands List
- Endpoint: GET https://localhost:5001/bands[?name={filter}]
-
Bandit Bands List
- Endpoint: GET https://localhost:5001/bandits/{banditId}/bands
-
Bandit Details
- Endpoint: GET https://localhost:5001/bandits/{banditId}
-
Bandits List
- Endpoint: GET https://localhost:5001/bandits
-
Create Band
- Endpoint: POST https://localhost:5001/bands
- Payload: { "Name": "{Band Name}", "Boss": { "Id": {bossId} } }
-
Create Bandit
- Endpoint: POST https://localhost:5001/bandits
- Payload: { "Name": "{Bandit Name}", "Email": "{Bandit Email}" }
-
Create Round:
- Endpoint: POST https://localhost:5001/rounds
- Payload: { "Name": "{Round Name}", "Place": "{Round Place", "DateTime": "{yyyy-mm-dd}", "Sheriff": { "Id": {sheriffId} }, "Members": [ { "Id": {memberId} }, { "Id": {memberId} }, ], "Band": { "Id": {bandId} } }
-
Invite Join Band
- Endpoint: POST https://localhost:5001/bands/invite
- Payload: { "Host": { "Id": {banditId} }, "Guest": { "Id": {banditId} }, "Band": { "Id": {bandId} } }
-
Request Join Band
- Endpoint: POST https://localhost:5001/bands/request
- Payload: { "Band": { "Id": {bandId} }, "Guest": { "Id": {banditId} } }
-
Notifications List
- Endpoint: GET https://localhost:5001/bandits/{banditId}/notifications
-
Read Notification
- Endpoint: POST https://localhost:5001/notifications/{notificationId}/read
-
Invitations List
- Endpoint: GET https://localhost:5001/bandits/{banditId}/invites
-
Handle Invitation
- Endpoint: POST https://localhost:5001/invites/handle
- Payload: { "Accept": {true|false}, "Invitation": { "Id": {invitationId} } }
-
Invite Join App
- Endpoint: POST https://localhost:5001/bandits/invite
- Payload: { "Host": { "Id": {banditId} }, "GuestEmail": "{Guest Email}" }
-
Score Round
- Endpoint: https://localhost:5001/rounds/score
- Payload: { "Round": { "Id": {roundId} }, "Member": { "Id": {banditId} }, "Score": { "LootSize": {lootSize}, "LootValue": {lootValue}, "Service": {servic}, "Price": {price} } }