@@ -2,9 +2,9 @@ package handler
22
33import (
44 "context"
5+ "fmt"
56 "net/http"
6-
7- "github.com/RoyXiang/plexproxy/common"
7+ "net/http/httptest"
88)
99
1010func getRequestParam (r * http.Request , key string , delete bool ) string {
@@ -24,24 +24,29 @@ func getRequestParam(r *http.Request, key string, delete bool) string {
2424 return result
2525}
2626
27- func (w * fakeCloseReadCloser ) Close () error {
27+ func newMockHTTPRespWriter () * mockHTTPRespWriter {
28+ return & mockHTTPRespWriter {
29+ httptest .NewRecorder (),
30+ }
31+ }
32+
33+ func (w * mockHTTPRespWriter ) WriteResponse () error {
2834 return nil
2935}
3036
31- func (w * fakeCloseReadCloser ) RealClose () error {
32- if w .ReadCloser == nil {
33- return nil
37+ func (w * mockHTTPRespWriter ) WriteRespHeaders (status int , header http.Header ) error {
38+ w .WriteHeader (status )
39+ for header , val := range header {
40+ w .Header ()[header ] = val
3441 }
35- return w .ReadCloser .Close ()
42+ return nil
43+ }
44+
45+ func (w * mockHTTPRespWriter ) Read (_ []byte ) (int , error ) {
46+ return 0 , fmt .Errorf ("mockHTTPRespWriter doesn't implement io.Reader" )
3647}
3748
3849func Handler (w http.ResponseWriter , r * http.Request ) {
39- if r .Body != nil {
40- r .Body = & fakeCloseReadCloser {r .Body }
41- defer func () {
42- _ = r .Body .(* fakeCloseReadCloser ).RealClose ()
43- }()
44- }
4550 proxy .ServeHTTP (w , r )
4651}
4752
@@ -54,7 +59,7 @@ func TimelineHandler(w http.ResponseWriter, r *http.Request) {
5459 request := r .Clone (context .Background ())
5560 go func () {
5661 getRequestParam (request , headerToken , true )
57- plaxtProxy .ServeHTTP (common . NewCustomResponseWriter (), request )
62+ plaxtProxy .ServeHTTP (newMockHTTPRespWriter (), request )
5863 }()
5964 }
6065
0 commit comments