From b89240a4dbb7db22f495dff97748b4f394a99f4a Mon Sep 17 00:00:00 2001 From: simojenki Date: Wed, 17 Mar 2021 19:06:25 +1100 Subject: [PATCH] Subsonic scrobble is a GET request... --- src/navidrome.ts | 31 ++++--------------------------- tests/navidrome.test.ts | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 40 deletions(-) diff --git a/src/navidrome.ts b/src/navidrome.ts index a8c3a7f..e046f8a 100644 --- a/src/navidrome.ts +++ b/src/navidrome.ts @@ -244,32 +244,6 @@ export class Navidrome implements MusicService { else return response; }); - post = async ( - { username, password }: Credentials, - path: string, - q: {} = {}, - config: AxiosRequestConfig | undefined = {} - ) => - axios - .post(`${this.url}${path}`, { - params: { - ...q, - u: username, - ...t_and_s(password), - v: "1.16.1", - c: "bonob", - }, - headers: { - "User-Agent": "bonob", - }, - ...config, - }) - .then((response) => { - if (response.status != 200 && response.status != 206) - throw `Navidrome failed with a ${response.status}`; - else return response; - }); - getJSON = async ( { username, password }: Credentials, path: string, @@ -548,7 +522,10 @@ export class Navidrome implements MusicService { }, scrobble: async (id: string) => navidrome - .post(credentials, `/rest/scrobble`, { id, submission: true }) + .get(credentials, `/rest/scrobble`, { + id, + submission: true, + }) .then((_) => true) .catch(() => false), }; diff --git a/tests/navidrome.test.ts b/tests/navidrome.test.ts index 8671de8..133afb7 100644 --- a/tests/navidrome.test.ts +++ b/tests/navidrome.test.ts @@ -2170,9 +2170,9 @@ describe("Navidrome", () => { it("should return true", async () => { const id = uuid(); - mockGET.mockImplementationOnce(() => Promise.resolve(ok(PING_OK))); - - mockPOST.mockImplementationOnce(() => Promise.resolve(ok(EMPTY))); + mockGET + .mockImplementationOnce(() => Promise.resolve(ok(PING_OK))) + .mockImplementationOnce(() => Promise.resolve(ok(EMPTY))); const result = await navidrome .generateToken({ username, password }) @@ -2182,7 +2182,7 @@ describe("Navidrome", () => { expect(result).toEqual(true); - expect(mockPOST).toHaveBeenCalledWith(`${url}/rest/scrobble`, { + expect(mockGET).toHaveBeenCalledWith(`${url}/rest/scrobble`, { params: { id, submission: true, @@ -2197,14 +2197,14 @@ describe("Navidrome", () => { it("should return false", async () => { const id = uuid(); - mockGET.mockImplementationOnce(() => Promise.resolve(ok(PING_OK))); - - mockPOST.mockImplementationOnce(() => - Promise.resolve({ - status: 500, - data: {}, - }) - ); + mockGET + .mockImplementationOnce(() => Promise.resolve(ok(PING_OK))) + .mockImplementationOnce(() => + Promise.resolve({ + status: 500, + data: {}, + }) + ); const result = await navidrome .generateToken({ username, password }) @@ -2214,7 +2214,7 @@ describe("Navidrome", () => { expect(result).toEqual(false); - expect(mockPOST).toHaveBeenCalledWith(`${url}/rest/scrobble`, { + expect(mockGET).toHaveBeenCalledWith(`${url}/rest/scrobble`, { params: { id, submission: true,