public async Task <IActionResult> Update([FromBody] ServerUpdateRequest model, CancellationToken cancellationToken) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (model.NewVersion == null) { return(BadRequest(new ErrorMessageResponse(ErrorCode.ModelValidationFailure) { AdditionalData = "newVersion is required!", })); } if (model.NewVersion.Major != assemblyInformationProvider.Version.Major) { return(BadRequest(new ErrorMessageResponse(ErrorCode.CannotChangeServerSuite))); } if (!serverControl.WatchdogPresent) { return(UnprocessableEntity(new ErrorMessageResponse(ErrorCode.MissingHostWatchdog))); } try { var updateResult = await serverUpdater.BeginUpdate(model.NewVersion, cancellationToken).ConfigureAwait(false); if (updateResult == ServerUpdateResult.ReleaseMissing) { return(Gone()); } if (updateResult == ServerUpdateResult.UpdateInProgress) { return(BadRequest(new ErrorMessageResponse(ErrorCode.ServerUpdateInProgress))); } return(Accepted(new ServerUpdateResponse { NewVersion = model.NewVersion, })); } catch (RateLimitExceededException e) { return(RateLimit(e)); } catch (ApiException e) { Logger.LogWarning(e, OctokitException); return(StatusCode(HttpStatusCode.FailedDependency, new ErrorMessageResponse(ErrorCode.RemoteApiError) { AdditionalData = e.Message, })); } }
public async Task <ActionResult> UpdateServer([FromBody] ServerUpdateRequest server) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _updateServerUseCase.Handle(new UpdateServerRequest(server.id, server.CreatedAt, server.CreatedBy, server.DeletedAt, server.DeletedBy, server.EndDate, server.IpAddress, server.IsDeleted, server.Name, server.StartDate, server.Status, server.UpdatedAt, server.UpdatedBy), _updateServerPresenter); return(Ok("Server has been successfully updated")); }
/// <inheritdoc /> public Task <ServerUpdateResponse> Update(ServerUpdateRequest updateRequest, CancellationToken cancellationToken) => ApiClient.Update <ServerUpdateRequest, ServerUpdateResponse>(Routes.Administration, updateRequest ?? throw new ArgumentNullException(nameof(updateRequest)), cancellationToken);