Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 141 additions & 0 deletions .vscode/api-tests.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
###############################################################################
# Luminous API Test Requests
###############################################################################
# Use with the REST Client VS Code extension (humao.rest-client)
#
# Usage:
# 1. Start the API (F5 or run "API: Debug" task)
# 2. Click "Send Request" above any request
# 3. View response in the split panel
#
# Environment variables are defined in .vscode/settings.json
###############################################################################

@baseUrl = http://localhost:5000
@contentType = application/json

###############################################################################
# Health & Status
###############################################################################

### Health Check
GET {{baseUrl}}/health

### Check Dev Auth Status
GET {{baseUrl}}/api/devauth/status

###############################################################################
# Development Authentication
###############################################################################

### Get Default Dev Token
# @name getToken
POST {{baseUrl}}/api/devauth/token

### Store token from response
@token = {{getToken.response.body.accessToken}}

### Get Custom Dev Token (Owner role)
POST {{baseUrl}}/api/devauth/token/custom
Content-Type: {{contentType}}

{
"userId": "test-user-001",
"familyId": "test-family-001",
"email": "[email protected]",
"role": "Owner",
"displayName": "Test Owner"
}

### Get Custom Dev Token (Child role)
POST {{baseUrl}}/api/devauth/token/custom
Content-Type: {{contentType}}

{
"userId": "child-user-001",
"familyId": "test-family-001",
"email": "[email protected]",
"role": "Child",
"displayName": "Test Child"
}

### Get Custom Dev Token (Caregiver role)
POST {{baseUrl}}/api/devauth/token/custom
Content-Type: {{contentType}}

{
"userId": "caregiver-001",
"familyId": "test-family-001",
"email": "[email protected]",
"role": "Caregiver",
"displayName": "Test Caregiver"
}

###############################################################################
# Family API (requires authentication)
###############################################################################

### Get Family Details
GET {{baseUrl}}/api/families
Authorization: Bearer {{token}}

### Create Family
POST {{baseUrl}}/api/families
Content-Type: {{contentType}}
Authorization: Bearer {{token}}

{
"name": "Smith Family",
"timezone": "America/New_York"
}

###############################################################################
# User API (requires authentication)
###############################################################################

### Get Family Members
GET {{baseUrl}}/api/users
Authorization: Bearer {{token}}

### Get Current User Profile
GET {{baseUrl}}/api/users/me
Authorization: Bearer {{token}}

###############################################################################
# Events API (requires authentication)
###############################################################################

### Get Events
GET {{baseUrl}}/api/events
Authorization: Bearer {{token}}

### Get Events for Date Range
GET {{baseUrl}}/api/events?startDate=2025-01-01&endDate=2025-01-31
Authorization: Bearer {{token}}

###############################################################################
# Chores API (requires authentication)
###############################################################################

### Get Chores
GET {{baseUrl}}/api/chores
Authorization: Bearer {{token}}

###############################################################################
# Devices API (requires authentication)
###############################################################################

### Generate Device Link Code
POST {{baseUrl}}/api/devices/link-code
Authorization: Bearer {{token}}

### Get Linked Devices
GET {{baseUrl}}/api/devices
Authorization: Bearer {{token}}

###############################################################################
# Swagger / OpenAPI
###############################################################################

### Get OpenAPI Spec
GET {{baseUrl}}/swagger/v1/swagger.json
73 changes: 73 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
"recommendations": [
// ==========================================================================
// C# / .NET Development
// ==========================================================================
"ms-dotnettools.csdevkit",
"ms-dotnettools.csharp",
"ms-dotnettools.vscode-dotnet-runtime",

// ==========================================================================
// Angular / TypeScript Development
// ==========================================================================
"angular.ng-template",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",

// ==========================================================================
// Tailwind CSS
// ==========================================================================
"bradlc.vscode-tailwindcss",

// ==========================================================================
// Docker
// ==========================================================================
"ms-azuretools.vscode-docker",

// ==========================================================================
// Azure / Bicep
// ==========================================================================
"ms-azuretools.vscode-bicep",
"ms-vscode.azure-account",
"ms-azuretools.vscode-azurefunctions",

// ==========================================================================
// API Development
// ==========================================================================
"humao.rest-client",
"42crunch.vscode-openapi",

// ==========================================================================
// Git
// ==========================================================================
"eamodio.gitlens",
"mhutchie.git-graph",

// ==========================================================================
// Productivity
// ==========================================================================
"christian-kohler.path-intellisense",
"streetsidesoftware.code-spell-checker",
"usernamehw.errorlens",
"gruntfuggly.todo-tree",

// ==========================================================================
// Markdown / Documentation
// ==========================================================================
"yzhang.markdown-all-in-one",
"bierner.markdown-mermaid",

// ==========================================================================
// Testing
// ==========================================================================
"ms-vscode.test-adapter-converter",
"hbenl.vscode-test-explorer",

// ==========================================================================
// Editor Enhancements
// ==========================================================================
"editorconfig.editorconfig",
"aaron-bond.better-comments"
],
"unwantedRecommendations": []
}
172 changes: 172 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
"version": "0.2.0",
"configurations": [
// ==========================================================================
// .NET API Debugging
// ==========================================================================
{
"name": "API: Debug",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "API: Build",
"program": "${workspaceFolder}/src/Luminous.Api/bin/Debug/net10.0/Luminous.Api.dll",
"args": [],
"cwd": "${workspaceFolder}/src/Luminous.Api",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "http://localhost:5000"
},
"console": "integratedTerminal",
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)",
"uriFormat": "%s/swagger"
}
},
{
"name": "API: Debug (HTTPS)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "API: Build",
"program": "${workspaceFolder}/src/Luminous.Api/bin/Debug/net10.0/Luminous.Api.dll",
"args": [],
"cwd": "${workspaceFolder}/src/Luminous.Api",
"stopAtEntry": false,
"env": {
"ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000"
},
"console": "integratedTerminal",
"serverReadyAction": {
"action": "openExternally",
"pattern": "\\bNow listening on:\\s+(https?://\\S+)",
"uriFormat": "%s/swagger"
}
},
{
"name": "API: Attach to Process",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
},

// ==========================================================================
// .NET Tests Debugging
// ==========================================================================
{
"name": "Tests: Debug Domain",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "Solution: Build All",
"program": "dotnet",
"args": [
"test",
"${workspaceFolder}/tests/Luminous.Domain.Tests/Luminous.Domain.Tests.csproj",
"--no-build"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false
},
{
"name": "Tests: Debug Application",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "Solution: Build All",
"program": "dotnet",
"args": [
"test",
"${workspaceFolder}/tests/Luminous.Application.Tests/Luminous.Application.Tests.csproj",
"--no-build"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false
},
{
"name": "Tests: Debug API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "Solution: Build All",
"program": "dotnet",
"args": [
"test",
"${workspaceFolder}/tests/Luminous.Api.Tests/Luminous.Api.Tests.csproj",
"--no-build"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false
},
{
"name": "Tests: Debug All",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "Solution: Build All",
"program": "dotnet",
"args": ["test", "--no-build"],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"stopAtEntry": false
},

// ==========================================================================
// Angular Web App Debugging
// ==========================================================================
{
"name": "Web: Debug in Chrome",
"type": "chrome",
"request": "launch",
"preLaunchTask": "Web: Start Dev Server",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/clients/web/src",
"sourceMapPathOverrides": {
"webpack:/*": "${webRoot}/*"
}
},
{
"name": "Web: Debug in Edge",
"type": "msedge",
"request": "launch",
"preLaunchTask": "Web: Start Dev Server",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/clients/web/src",
"sourceMapPathOverrides": {
"webpack:/*": "${webRoot}/*"
}
},
{
"name": "Web: Attach to Chrome",
"type": "chrome",
"request": "attach",
"port": 9222,
"webRoot": "${workspaceFolder}/clients/web/src"
}
],
"compounds": [
// ==========================================================================
// Full Stack Debugging
// ==========================================================================
{
"name": "Full Stack: API + Web (Chrome)",
"configurations": ["API: Debug", "Web: Debug in Chrome"],
"stopAll": true,
"presentation": {
"hidden": false,
"group": "Full Stack",
"order": 1
}
},
{
"name": "Full Stack: API + Web (Edge)",
"configurations": ["API: Debug", "Web: Debug in Edge"],
"stopAll": true,
"presentation": {
"hidden": false,
"group": "Full Stack",
"order": 2
}
}
]
}
Loading