Denmaseno 8 년 전
부모
커밋
ca88df3486
2개의 변경된 파일40개의 추가작업 그리고 2개의 파일을 삭제
  1. 23 0
      main_test.go
  2. 17 2
      plex.go

+ 23 - 0
main_test.go

@@ -0,0 +1,23 @@
+package plexapi
+
+import (
+	"os"
+	"testing"
+
+	log "github.com/Sirupsen/logrus"
+)
+
+// TestMain func
+func TestMain(t *testing.T) {
+	log.SetOutput(os.Stderr)
+	log.SetLevel(log.DebugLevel)
+
+	// t.Log("START")
+	// api := API{User: "foo", Password: "secure", HTTP: HTTPConfig{Timeout: 30, WorkerSize: 10}}
+
+	// servers, err := api.GetServers()
+	// if err != nil {
+	// 	t.Fatal(err)
+	// }
+	// t.Log("SERVERS ", util.JSONPrettyPrint(servers))
+}

+ 17 - 2
plex.go

@@ -38,6 +38,12 @@ type UserInfo struct {
 	Token    string   `xml:"authentication-token"`
 }
 
+// ResponseError struct
+type ResponseError struct {
+	XMLName xml.Name `xml:"errors"`
+	Errors  []string `xml:"error"`
+}
+
 // MediaContainer struct
 type MediaContainer struct {
 	Paths                         []string    `xml:"-"`
@@ -136,8 +142,17 @@ func (api *API) login() error {
 	if err != nil {
 		return err
 	}
-	log.Debug("LOGIN RESULT\n", string(body))
-	return xml.Unmarshal(body, &api.userInfo)
+	err = xml.Unmarshal(body, &api.userInfo)
+	if err != nil {
+		log.Debug("LOGIN RESULT\n", string(body))
+		emsg := &ResponseError{}
+		if xml.Unmarshal(body, emsg) == nil {
+			if len(emsg.Errors) > 0 {
+				return fmt.Errorf("%s", emsg.Errors[0])
+			}
+		}
+	}
+	return err
 }
 
 // GetServers func