@@ -51,22 +51,25 @@ func NewServer(port int, db database.Database, dockerImageBuilder docker.ImageBu
5151func (s * Server ) Start () error {
5252 router := mux .NewRouter ()
5353 router .Path ("/ping" ).
54- Methods ("GET" ).
54+ Methods (http . MethodGet ).
5555 HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
5656 log .Info ("Received ping request" )
5757 w .Write ([]byte ("pong" ))
5858 })
5959 router .Path ("/v1/repos/{user}/{name}/packages/{id}.zip" ).
60- Methods ("GET" ).
60+ Methods (http . MethodGet ).
6161 HandlerFunc (s .SendModelPackage )
6262 router .Path ("/v1/repos/{user}/{name}/packages/" ).
63- Methods ("PUT" ).
63+ Methods (http . MethodPut ).
6464 HandlerFunc (s .ReceiveFile )
65+ router .Path ("/v1/repos/{user}/{name}/packages/" ).
66+ Methods (http .MethodGet ).
67+ HandlerFunc (s .ListPackages )
6568 router .Path ("/v1/repos/{user}/{name}/packages/{id}" ).
66- Methods ("GET" ).
69+ Methods (http . MethodGet ).
6770 HandlerFunc (s .SendModelMetadata )
6871 router .Path ("/v1/repos/{user}/{name}/packages/{id}" ).
69- Methods ("DELETE" ).
72+ Methods (http . MethodDelete ).
7073 HandlerFunc (s .DeletePackage )
7174 fmt .Println ("Starting" )
7275 return http .ListenAndServe (fmt .Sprintf (":%d" , s .port ), router )
@@ -136,6 +139,26 @@ func (s *Server) SendModelMetadata(w http.ResponseWriter, r *http.Request) {
136139 }
137140}
138141
142+ func (s * Server ) ListPackages (w http.ResponseWriter , r * http.Request ) {
143+ user , name , _ := getRepoVars (r )
144+ log .Infof ("Received list request for %s%s" , user , name )
145+
146+ models , err := s .db .ListModels (user , name )
147+ if err != nil {
148+ log .Error (err )
149+ w .WriteHeader (http .StatusInternalServerError )
150+ return
151+ }
152+ w .WriteHeader (http .StatusOK )
153+ w .Header ().Set ("Content-Type" , "application/json" )
154+
155+ if err := json .NewEncoder (w ).Encode (models ); err != nil {
156+ log .Error (err )
157+ w .WriteHeader (http .StatusInternalServerError )
158+ return
159+ }
160+ }
161+
139162func (s * Server ) DeletePackage (w http.ResponseWriter , r * http.Request ) {
140163 user , name , id := getRepoVars (r )
141164 log .Infof ("Received delete request for %s/%s/%s" , user , name , id )
0 commit comments