private async Task <Response> HandleDeleteDataAsync(dynamic args) { var dbRequest = (DynDatabaseRequest)CreateDatabaseRequest(args, DatabaseAction.Delete); if (dbRequest.State == PermissionState.Denied) { return(HttpStatusCode.Unauthorized); } if (!dbRequest.Valid) { return(HttpStatusCode.BadRequest); } var dynDbService = new DynamicDatabaseService(ServerContext.KeyValueDbService); await dynDbService.DeleteData(dbRequest); return(Response.FromJsonString(new JObject().ToString())); }
private async Task <Response> HandlePutDataAsync(dynamic args) { var dbRequest = (DynDatabaseRequest)CreateDatabaseRequest(args, DatabaseAction.Put); if (dbRequest.State == PermissionState.Denied) { return(HttpStatusCode.Unauthorized); } if (!dbRequest.Valid) { return(HttpStatusCode.BadRequest); } var path = dbRequest.Path; // Deserialize data bundle JObject dataBundle; try { using (var sr = new StreamReader(Request.Body)) { var rawJsonData = await sr.ReadToEndAsync(); dataBundle = JObject.Parse(rawJsonData); } } catch (JsonSerializationException) { return(HttpStatusCode.BadRequest); } // Write data var dynDbService = new DynamicDatabaseService(ServerContext.KeyValueDbService); var placeResult = await dynDbService.PlaceData(dataBundle, dbRequest, NodeDataOvewriteMode.Put); // Return data written return(Response.FromJsonString(placeResult)); }
private async Task <Response> HandleGetDataAsync(dynamic args) { var dbRequest = (DynDatabaseRequest)CreateDatabaseRequest(args, DatabaseAction.Retrieve); if (dbRequest.State == PermissionState.Denied) { return(HttpStatusCode.Unauthorized); } if (!dbRequest.Valid) { return(HttpStatusCode.BadRequest); } // Read query parameters var shallow = (string)Request.Query.shallow == "1"; var dynDbService = new DynamicDatabaseService(ServerContext.KeyValueDbService); var dataBundle = await dynDbService.GetData(dbRequest, shallow); if (dataBundle == null) { return(Response.FromJsonString("{}")); } return(Response.FromJsonString(dataBundle.ToString())); }