public override void Respond(HttpListenerContext context) { var match = urlMatcher.Match(context.Request.Url.LocalPath); var filename = match.Groups[1].Value; var etag = context.GetEtag(); switch (context.Request.HttpMethod) { case "GET": var attachmentAndHeaders = Database.GetStatic(filename); if (attachmentAndHeaders == null) { context.SetStatusToNotFound(); return; } if (context.MatchEtag(attachmentAndHeaders.Etag)) { context.SetStatusToNotModified(); return; } context.WriteData(attachmentAndHeaders.Data, attachmentAndHeaders.Metadata, attachmentAndHeaders.Etag); break; case "PUT": Database.PutStatic(filename, context.GetEtag(), context.Request.InputStream.ReadData(), context.Request.Headers.FilterHeaders()); context.SetStatusToCreated("/static/" + filename); break; case "DELETE": Database.DeleteStatic(filename, etag); context.SetStatusToDeleted(); break; } }
private void Put(HttpListenerContext context, string index) { var data = context.ReadJsonObject<IndexDefinition>(); if (data.Map == null) { context.SetStatusToBadRequest(); context.Write("Expected json document with 'Map' property"); return; } context.SetStatusToCreated("/indexes/" + index); context.WriteJson(new { index = Database.PutIndex(index, data) }); }
public override void Respond(HttpListenerContext context) { switch (context.Request.HttpMethod) { case "GET": context.WriteJson(Database.GetDocuments(context.GetStart(), context.GetPageSize())); break; case "POST": var json = context.ReadJson(); var id = Database.Put(null, Guid.NewGuid(), json, context.Request.Headers.FilterHeaders(), GetRequestTransaction(context)); context.SetStatusToCreated("/docs/" + id); context.WriteJson(id); break; } }
private void Put(HttpListenerContext context, string docId) { var json = context.ReadJson(); context.SetStatusToCreated("/docs/" + docId); var putResult = Database.Put(docId, context.GetEtag(), json, context.Request.Headers.FilterHeaders(), GetRequestTransaction(context)); context.WriteJson(putResult); }