using System; using Crestron.SimplSharp.WebScripting; using PepperDash.Core; using PepperDash.Core.Web.RequestHandlers; namespace PepperDash.Essentials.Core.Web.RequestHandlers { public class DevJsonRequestHandler : WebApiBaseRequestHandler { /// /// Constructor /// /// /// base(true) enables CORS support by default /// public DevJsonRequestHandler() : base(true) { } /// /// Handles POST method requests /// /// protected override void HandlePost(HttpCwsContext context) { if (context.Request.ContentLength < 0) { context.Response.StatusCode = 400; context.Response.StatusDescription = "Bad Request"; context.Response.End(); return; } var data = EssentialsWebApiHelpers.GetRequestBody(context.Request); if (string.IsNullOrEmpty(data)) { context.Response.StatusCode = 400; context.Response.StatusDescription = "Bad Request"; context.Response.End(); return; } try { DeviceJsonApi.DoDeviceActionWithJson(data); context.Response.StatusCode = 200; context.Response.StatusDescription = "OK"; context.Response.End(); } catch (Exception ex) { Debug.Console(1, "Exception Message: {0}", ex.Message); Debug.Console(2, "Exception Stack Trace: {0}", ex.StackTrace); if(ex.InnerException != null) Debug.Console(2, "Exception Inner: {0}", ex.InnerException); context.Response.StatusCode = 400; context.Response.StatusDescription = "Bad Request"; context.Response.End(); } } } }