mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 08:36:13 +00:00
Two deliberately-unimplemented routes, pinned as "currently ignored" so a future
change to them is conscious:
- GET /v1/blacklist/{deviceId} -> 405 (inline stub)
- POST /alexa/certificate -> 501 (no AWS IoT integration)
App / provisioning surface (app-called, not the speaker data-plane). Shapes come
from the _/mitm capture where one exists, otherwise from the handler (canned /
stub responses):
- GET /streaming/account/{a}/emailaddress -> 200 (<emailAddress>, _/mitm)
- GET /customer/account/{a} -> 200 (<customer> profile, canned)
- POST /customer/account/{a} -> 200 (profile update, stub)
- POST /customer/account/{a}/password -> 200 (password change, stub)
COVERAGE.md gains an app/provisioning section and records the source (mitm vs
handler) for each. make test-http-client: 73 requests, 0 failed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
18 lines
858 B
HTTP
18 lines
858 B
HTTP
### GET /streaming/account/{accountId}/emailaddress (app-called account surface)
|
|
###
|
|
### The SoundTouch app fetches the account email (captured in _/mitm). Not part of
|
|
### the speaker data-plane, but part of the frozen app/provisioning contract.
|
|
### HandleMargeGetEmailAddress returns an <emailAddress> XML body. App user-agent.
|
|
GET {{host}}/streaming/account/{{accountId}}/emailaddress
|
|
User-Agent: Mozilla/5.0 (Linux; Android 13) SOUNDTOUCH_MOBILE_APP
|
|
Accept: application/vnd.bose.streaming-v1.1+xml
|
|
Authorization: Bearer {{token}}
|
|
|
|
> {%
|
|
client.test("Email address returned as XML 200", function() {
|
|
client.assert(response.status === 200, "Response status is not 200, got " + response.status);
|
|
client.assert(response.body.getElementsByTagName("emailAddress").length > 0,
|
|
"Response should contain <emailAddress>");
|
|
});
|
|
%}
|