package image import ( "github.com/docker/docker/api/server/httputils" "github.com/docker/docker/api/server/router" ) // imageRouter is a router to talk with the image controller type imageRouter struct { backend Backend decoder httputils.ContainerDecoder routes []router.Route } // NewRouter initializes a new image router func NewRouter(backend Backend, decoder httputils.ContainerDecoder) router.Router { r := &imageRouter{ backend: backend, decoder: decoder, } r.initRoutes() return r } // Routes returns the available routes to the image controller func (r *imageRouter) Routes() []router.Route { return r.routes } // initRoutes initializes the routes in the image router func (r *imageRouter) initRoutes() { r.routes = []router.Route{ // GET router.NewGetRoute("/images/json", r.getImagesJSON), router.NewGetRoute("/images/search", r.getImagesSearch), router.NewGetRoute("/images/get", r.getImagesGet), router.NewGetRoute("/images/{name:.*}/get", r.getImagesGet), router.NewGetRoute("/images/{name:.*}/history", r.getImagesHistory), router.NewGetRoute("/images/{name:.*}/json", r.getImagesByName), // POST router.NewPostRoute("/commit", r.postCommit), router.NewPostRoute("/images/load", r.postImagesLoad), router.Cancellable(router.NewPostRoute("/images/create", r.postImagesCreate)), router.Cancellable(router.NewPostRoute("/images/{name:.*}/push", r.postImagesPush)), router.NewPostRoute("/images/{name:.*}/tag", r.postImagesTag), // DELETE router.NewDeleteRoute("/images/{name:.*}", r.deleteImages), } }