Release / build-and-push (push) Successful in 3m2s
TestAudioResumeRewind drives the whole surface against the shared dev DB with the fresh per-test regular user (the live admin is never touched; the fixture book lives in a test-named library that cascades away): default 0, profile PUT "5" rides the chapters payload, non-allow-listed values 400 without side effects, explicit "0" resets everywhere, and an omitted JSON key leaves the column untouched. Changelog entry in docs/contract_pins.md (additive chapters key + the profile field's string-shaped PUT, keep_screen_awake precedent) and the get_profile.md example gains the preference keys. Debug note for the next agent: the first runs here 401'd with 'Ghost session rejected' — NOT a harness or auth bug. The tests never execute schema.sql; the shared dev DB gets its schema from the app container's boot. The rebuilt tests image ran the new GetUser (selecting audio_resume_rewind_seconds) against a DB whose schema came from the old app image — every GetUser errored, and the ghost-session guard turned that into 401s. Applying the schema.sql ALTER to the dev DB (what the next app rebuild does anyway) turned the suite green. Until make rebuild-app runs, the running app container serves the old binary.
50 lines
993 B
Markdown
50 lines
993 B
Markdown
---
|
|
method: GET
|
|
path: /api/auth/profile
|
|
auth: jwt
|
|
area: authentication
|
|
---
|
|
<!-- source: internal/handlers/auth.go:530 AuthHandler.GetProfile -->
|
|
|
|
# Get Current User Profile
|
|
|
|
Retrieve the current authenticated user's profile.
|
|
|
|
**Endpoint**: `GET /api/auth/profile`
|
|
**Auth**: Required
|
|
|
|
## Request Headers
|
|
|
|
| Header | Type | Required | Description |
|
|
| ------------- | ------ | -------- | ------------ |
|
|
| Authorization | string | Yes | Bearer token |
|
|
|
|
### Example Request
|
|
|
|
```http
|
|
GET /api/auth/profile
|
|
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
```
|
|
|
|
## Response (200 OK)
|
|
|
|
```json example-response
|
|
{
|
|
"id": "uuid",
|
|
"email": "user@example.com",
|
|
"username": "john",
|
|
"first_name": "John",
|
|
"last_name": "Doe",
|
|
"role": "user",
|
|
"default_audio_speed": 1.5,
|
|
"audio_resume_rewind_seconds": 5,
|
|
"keep_screen_awake": true
|
|
}
|
|
```
|
|
|
|
## Error Responses
|
|
|
|
| Code | Description |
|
|
| ---- | ------------------------ |
|
|
| 401 | Invalid or expired token |
|