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>
20 lines
931 B
HTTP
20 lines
931 B
HTTP
### GET /customer/account/{accountId} (app-called account profile)
|
|
###
|
|
### App / provisioning surface (not the speaker data-plane). No live recording in
|
|
### _/mitm for this exact route; the response is a canned profile from
|
|
### HandleMargeAccountProfile, returned as a <customer> XML document. App user-agent.
|
|
GET {{host}}/customer/account/{{accountId}}
|
|
User-Agent: Mozilla/5.0 (Linux; Android 13) SOUNDTOUCH_MOBILE_APP
|
|
Accept: application/xml
|
|
Authorization: Bearer {{token}}
|
|
|
|
> {%
|
|
client.test("Account profile returned as XML 200", function() {
|
|
client.assert(response.status === 200, "Response status is not 200, got " + response.status);
|
|
client.assert(response.body.getElementsByTagName("customer").length > 0,
|
|
"Response should contain <customer>");
|
|
client.assert(response.body.getElementsByTagName("accountID").length > 0,
|
|
"<customer> should contain <accountID>");
|
|
});
|
|
%}
|