protected static async Task <string> internalGetAuthNonceAsync(HttpClient httpClient, CancellationToken cancellationToken) { var url = "auth/nonce"; using (var response = await httpClient.PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(new GenerateNonceRequestDto()), cancellationToken)) { var dto = await HandleResponse <GenerateNonceResponseDto>(response); return(dto.Nonce); } }
protected static async Task <string> internalAuthExternalWindowAsync(HttpClient httpClient, string spaceName, string serverNonce, CancellationToken cancellationToken) { var url = "auth/external/windows"; var requestDto = new WindowsExternalLoginRequestDto { RequestToken = serverNonce, SpaceName = spaceName }; using (var response = await httpClient.PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(requestDto), cancellationToken)) { var responseDto = await HandleResponse <LoginResponseDto>(response); return(responseDto.Token); } }
protected async Task <string> internalAuthLoginAsync(string clientNonce, string serverNonce, string spaceName, string passwordHash, CancellationToken cancellationToken) { var url = "auth/login"; var requestDto = new LoginRequestDto { ClientSeed = clientNonce, Password = passwordHash, Provider = "Space", UserName = spaceName, RequestToken = serverNonce }; using (var response = await GetHttpClient().PostAsync(url, JsonSerializationHelper.SerializeAsStringContent(requestDto), cancellationToken)) { var responseDto = await HandleResponse <LoginResponseDto>(response); return(responseDto.Token); } }
/// <summary> /// Start Task like "fire and forget" /// </summary> /// <param name="apiSession">api session</param> /// <param name="taskId">tast guid</param> /// <param name="cancellationToken"></param> /// <param name="taskParameters"></param> /// <returns></returns> public async Task <RunningTaskStatus> StartTaskAsync(ApiSession apiSession, Guid taskId, CancellationToken cancellationToken, IEnumerable <TaskParameterBase> taskParameters = null) { if (apiSession == null) { throw new ArgumentNullException(nameof(apiSession)); } var spaceName = apiSession.SpaceName; var url = UrlHelper.JoinUrl("space", spaceName, "runningtasks", taskId.ToString("D"), "payload"); var dto = new TaskStartRequestDto(); if (taskParameters != null) { dto.TaskParameters = taskParameters.Select(TaskParameterMapper.ToDto).ToList(); } var request = JsonSerializationHelper.SerializeAsStringContent(dto); using (var response = await GetHttpClient().SendAsync(BuildHttpRequestMessage(HttpMethod.Post, url, request, apiSession), cancellationToken)) { var info = await HandleResponse <RunningTaskStatusDto>(response); return(RunningTaskStatusMapper.RunningTaskStatusFromDto(info)); } }
/// <summary> /// Validate tasks. Checks that there are no missing parameters in the tasks. /// </summary> /// <param name="apiSession">api session</param> /// <param name="projectPath">project path like /path/to/project.morph </param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <ValidateTasksResult> ValidateTasksAsync(ApiSession apiSession, string projectPath, CancellationToken cancellationToken) { if (apiSession == null) { throw new ArgumentNullException(nameof(apiSession)); } if (string.IsNullOrWhiteSpace(projectPath)) { throw new ArgumentException(nameof(projectPath)); } var spaceName = apiSession.SpaceName; var url = "commands/validatetasks"; var request = new ValidateTasksRequestDto { SpaceName = spaceName, ProjectPath = projectPath }; using (var response = await GetHttpClient().SendAsync(BuildHttpRequestMessage(HttpMethod.Post, url, JsonSerializationHelper.SerializeAsStringContent(request), apiSession), cancellationToken)) { var dto = await HandleResponse <ValidateTasksResponseDto>(response); var entity = ValidateTasksResponseMapper.MapFromDto(dto); return(entity); } }