From f7a85af3fc9065d15ec9fd3084252351ff598035 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Tue, 22 Nov 2016 22:42:22 -0500 Subject: start working on TrackScrobble --- modern.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/modern.go b/modern.go index 8a384c3..ee69dc4 100644 --- a/modern.go +++ b/modern.go @@ -11,6 +11,7 @@ type Api interface { AuthGetToken(*http.Request) ApiResponse AuthGetSession(*http.Request) ApiResponse AuthGetMobileSession(*http.Request) ApiResponse + TrackScrobble(*http.Request, http.ResponseWriter) ApiResponse } type ApiResponse interface { @@ -78,17 +79,27 @@ func (store *SqlStore) AuthGetSession(r *http.Request) ApiResponse { return response } -func (store *SqlStore) TrackScrobble(r *http.Request) ApiResponse { +func (store *SqlStore) TrackScrobble(r *http.Request, w http.ResponseWriter) ApiResponse { + if session, err := store.GetSession(r.FormValue("s")); err != nil { + scrobbles := parseScrobbles(r.Form, session) + store.PutScrobbles(scrobbles) + fmt.Fprintln(w, "OK") + } else { + fmt.Fprintln(w, "BADSESSION") + } return struct{}{} } func ApiHandler(ds DataStore, w http.ResponseWriter, r *http.Request) { method := r.FormValue("method") var response ApiResponse - if method == "auth.getToken" { + switch method { + case "auth.getToken": response = ds.AuthGetToken(r) - } else if method == "auth.getSession" { + case "auth.getSession": response = ds.AuthGetSession(r) + case "track.scrobble": + response = ds.TrackScrobble(r, w) } var text []byte -- cgit v1.2.3-70-g09d2