Section | Description |
---|---|
Structure | The structure of the project |
flowchart TD
classDef presentation stroke:#f0f
classDef api stroke:#f00
classDef service stroke:#0f0
classDef data stroke:#00f
common["Common
[Langauge]: C#
Common models and
services
"]
Dashboard["Dashboard
[Langauge]: TypeScript
The dashboard to display
the Wakatime data
"]:::presentation
API["API
[Langauge]: C# / F#
API to access the
Wakatime data
"]:::api
synchronizer["Synchronizer
[Langauge]: C#
Service to fetch the
Wakatime data
"]:::api
business["Business
[Langauge]: F# / C#
Service to process/fetch
the Wakatime data
"]:::service
stats["Data Science
[Langauge]: F#
Service to create
statistics from the
Wakatime data
"]:::service
datalayer["Data
[Langauge]: C#
Service to access
the Wakatime data
from the database
"]:::data
Dashboard --> API
synchronizer --> business
API --> business
subgraph Data Access
business --> stats
stats --> datalayer
business --> datalayer
datalayer --> database[(Database)]:::data
end
HTTP Method | Endpoint | Description | Request Body |
---|---|---|---|
GET | /api/v1/Heartbeat | Get all heartbeats from the database | |
POST | /api/v1/Heartbeat | Add a heartbeat to the database |
{
"id": 0,
"wakatimeId": "string",
"branch": "string",
"category": "string",
"createdAt": "string",
"cursorpos": 0,
"dependencies": [
"string"
],
"entity": "string",
"isWrite": true,
"language": "string",
"lineno": 0,
"lines": 0,
"machineNameId": "string",
"project": "string",
"projectRootCount": 0,
"time": 0,
"type": "string",
"userAgentId": "string",
"userId": "string"
}
|
GET | /api/v1/Heartbeat/{id} | Get a specific heartbeat from the database | |
PATCH | /api/v1/Heartbeat/{id} | Update a heartbeat in the database |
{
"id": 0,
"wakatimeId": "string",
"branch": "string",
"category": "string",
"createdAt": "string",
"cursorpos": 0,
"dependencies": [
"string"
],
"entity": "string",
"isWrite": true,
"language": "string",
"lineno": 0,
"lines": 0,
"machineNameId": "string",
"project": "string",
"projectRootCount": 0,
"time": 0,
"type": "string",
"userAgentId": "string",
"userId": "string"
}
|
DELETE | /api/v1/Heartbeat/{id} | Delete a heartbeat from the database | |
POST | /api/v1/Heartbeat/range | Add a range of heartbeats to the database |
{
"id": 0,
"wakatimeId": "string",
"branch": "string",
"category": "string",
"createdAt": "string",
"cursorpos": 0,
"dependencies": [
"string"
],
"entity": "string",
"isWrite": true,
"language": "string",
"lineno": 0,
"lines": 0,
"machineNameId": "string",
"project": "string",
"projectRootCount": 0,
"time": 0,
"type": "string",
"userAgentId": "string",
"userId": "string"
}
|