Пример #1
0
        public MediaModule()
        {
            /// <summary>
            /// Route pour récupérer tous les médias
            /// curl http://localhost:10563/links/api/tolisten
            /// </summary>
            Get["/links/api/tolisten"] = parameters => new JavaScriptSerializer().Serialize(MainClass.getMedias);

            /// <summary>
            /// Route pour ajouter un média
            /// curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{"id":10,"url":"truc","sender":"me","genre":"machin","author":"haha","title":"lol","isViewed":0}' http://localhost:10563/links/api/tolisten/add
            /// </summary>
            Post["/links/api/tolisten/add"] = parameters => {
                Media m = this.Bind <Media>();
                m = MainClass.AddMedia(m);
                return(m != null ? new JavaScriptSerializer().Serialize(m) : new Response {
                    StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "Can't added media"
                });
            };

            /// <summary>
            /// Route pour supprimer un média
            /// curl -X DELETE http://localhost:10563/links/api/tolisten/delete/1
            /// </summary>
            Delete["/links/api/tolisten/delete/{id:long}"] = parameters => {
                long  id = parameters.id;
                Media m  = MainClass.DelMedia(MainClass.GetMedia(id));
                return(m != null ? new JavaScriptSerializer().Serialize(m) : new Response {
                    StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "Can't delete media"
                });
            };

            /// <summary>
            /// Route pour mettre à jour un média
            /// curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{"id":1,"url":"truc","sender":"me","genre":"machin","author":"haha","title":"lol","isViewed":0}' http://localhost:10563/links/api/tolisten/edit
            /// </summary>
            Put["/links/api/tolisten/edit"] = parameters => {
                Media m = this.Bind <Media>();
                m = MainClass.UpMedia(m);
                return(m != null ? new JavaScriptSerializer().Serialize(m) : new Response {
                    StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "Can't edit media"
                });
            };

            /// <summary>
            /// Route pour changer la propriété vue d'un média
            /// curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{"id":1}' http://localhost:10563/links/api/tolisten/updateViewState
            /// </summary>
            Put["/links/api/tolisten/updateViewState/"] = parameters => {
                Media m = this.Bind <Media>();
                m          = MainClass.GetMedia(m.id);
                m.isViewed = m.isViewed == 0 ? 1 : 0;
                m          = MainClass.UpMedia(m);
                return(m != null ? new JavaScriptSerializer().Serialize(m) : new Response {
                    StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "Can't update view state"
                });
            };
        }