public async Task <IActionResult> VersionsPostAsync( [HttpTrigger(AuthorizationLevel.Function, FunctionConstants.FunctionPost, Route = "packages/{packageIdentifier}/versions")] HttpRequest req, string packageIdentifier, ILogger log) { Dictionary <string, string> headers = null; Version version = null; try { // Parse Headers headers = HeaderProcessor.ToDictionary(req.Headers); // Parse body as Version version = await Parser.StreamParser <Version>(req.Body, log); ApiDataValidator.Validate(version); // Save Document await this.dataStore.AddVersion(packageIdentifier, version); } catch (DefaultException e) { log.LogError(e.ToString()); return(ActionResultHelper.ProcessError(e.InternalRestError)); } catch (Exception e) { log.LogError(e.ToString()); return(ActionResultHelper.UnhandledError(e)); } return(new ApiObjectResult(new ApiResponse <Version>(version))); }
public async Task <IActionResult> VersionsPutAsync( [HttpTrigger(AuthorizationLevel.Function, FunctionConstants.FunctionPut, Route = "packages/{packageIdentifier}/versions/{packageVersion}")] HttpRequest req, string packageIdentifier, string packageVersion, ILogger log) { Dictionary <string, string> headers = null; Version version = null; try { // Parse Headers headers = HeaderProcessor.ToDictionary(req.Headers); // Parse body as Version version = await Parser.StreamParser <Version>(req.Body, log); ApiDataValidator.Validate(version); // Validate Versions Match if (version.PackageVersion != packageVersion) { throw new InvalidArgumentException( new InternalRestError( ErrorConstants.VersionDoesNotMatchErrorCode, ErrorConstants.VersionDoesNotMatchErrorMessage)); } await this.dataStore.UpdateVersion(packageIdentifier, packageVersion, version); } catch (DefaultException e) { log.LogError(e.ToString()); return(ActionResultHelper.ProcessError(e.InternalRestError)); } catch (Exception e) { log.LogError(e.ToString()); return(ActionResultHelper.UnhandledError(e)); } return(new ApiObjectResult(new ApiResponse <Version>(version))); }