public async Task <IActionResult> Put(string key, SrnDto value) { if (!await _security.Match(key, User)) { return(Forbid()); } try { if (value.Data == null) { throw new SrnException("SRN data must not be null. Use the Delete method to remove a value."); } var srn = (Srn)key; if (!srn.HasNamespace() || !srn.HasKey()) { throw new SrnException("Updating SRN data in bulk is not currently supported."); } await _service.SetAsync(srn, value.Data, value.Provider); return(Ok()); } catch (SrnException e) { return(BadRequest(new { e.Message })); } }
public async Task <IActionResult> Get(string key, SrnDto value) { if (!await _security.Match(key, User)) { return(Forbid()); } try { var srn = (Srn)key; if (string.IsNullOrWhiteSpace(srn.Namespace)) { throw new SrnException("Bulk retrieving namespaces is not currently supported."); } return(Json(value.Providers != null ? await _service.GetAsync(srn, value.Providers) : await _service.GetAsync(srn, value.Provider))); } catch (SrnException e) { return(BadRequest(new { e.Message })); } }
public async Task <IActionResult> Delete(string key, SrnDto value) { if (!await _security.Match(key, User)) { return(Forbid()); } try { var srn = (Srn)key; if (string.IsNullOrWhiteSpace(srn.Namespace)) { throw new SrnException("No namespace or key was provided to delete."); } await _service.DeleteAsync(srn, value.Provider); return(Ok()); } catch (SrnException e) { return(BadRequest(new { e.Message })); } }