/// <summary> /// Gets a multiplayer server build. /// </summary> public static void GetBuild(GetBuildRequest request, Action <GetBuildResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer; PlayFabHttp.MakeApiCall("/MultiplayerServer/GetBuild", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context); }
//--- Methods --- public async Task <GetBuildResponse> GetBuild(GetBuildRequest request) { var stopwatch = System.Diagnostics.Stopwatch.StartNew(); try { var getBuildTask = _lambdaClient.InvokeAsync(new InvokeRequest { Payload = JsonSerializer.Serialize(new BotRequest { Command = BotCommand.GetBuild, Session = request.Session, Bot = request.Bot }), FunctionName = _lambdaArn, InvocationType = InvocationType.RequestResponse }); // check if lambda responds within time limit if (await Task.WhenAny(getBuildTask, Task.Delay(_requestTimeout)) != getBuildTask) { _logger?.LogInfo($"Bot {_botId} GetBuild timed out after {stopwatch.Elapsed.TotalSeconds:N2}s"); return(null); } var response = Encoding.UTF8.GetString(getBuildTask.Result.Payload.ToArray()); var result = JsonSerializer.Deserialize <BotResponse>(response); _logger?.LogInfo($"Bot {_botId} GetBuild responded in {stopwatch.Elapsed.TotalSeconds:N2}s:\n{response}"); return(result.BotBuild); } catch (Exception e) { _logger?.LogErrorAsInfo(e, $"Bot {_botId} GetBuild failed (arn: {_lambdaArn ?? "<NULL>"})"); return(null); } }
/// <summary> /// Gets a multiplayer server build. /// </summary> public static async Task <PlayFabResult <GetBuildResponse> > GetBuildAsync(GetBuildRequest request, object customData = null, Dictionary <string, string> extraHeaders = null) { if (PlayFabSettings.EntityToken == null) { throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method"); } var httpResult = await PlayFabHttp.DoPost("/MultiplayerServer/GetBuild", request, "X-EntityToken", PlayFabSettings.EntityToken, extraHeaders); if (httpResult is PlayFabError) { var error = (PlayFabError)httpResult; PlayFabSettings.GlobalErrorHandler?.Invoke(error); return(new PlayFabResult <GetBuildResponse> { Error = error, CustomData = customData }); } var resultRawJson = (string)httpResult; var resultData = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <GetBuildResponse> >(resultRawJson); var result = resultData.data; return(new PlayFabResult <GetBuildResponse> { Result = result, CustomData = customData }); }
/// <summary> /// Gets a multiplayer server build. /// </summary> public void GetBuild(GetBuildRequest request, Action <GetBuildResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? authenticationContext; var callSettings = apiSettings ?? PlayFabSettings.staticSettings; if (!context.IsEntityLoggedIn()) { throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); } PlayFabHttp.MakeApiCall("/MultiplayerServer/GetBuild", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this); }
public async Task <BuildDto> GetBuild(string projectIdentifier, int buildId, string organization = default, CancellationToken cancellationToken = default) { var request = new GetBuildRequest(organization ?? _options.Value.DefaultOrganization, projectIdentifier, buildId); request.Headers.Authorization = GetAuthZHeader(); var response = await SendAsync(request, cancellationToken); var buildDto = await response.Content.ReadFromJsonAsync <BuildDto>(null, cancellationToken); return(buildDto); }
public void CanBeConstructed() { //Arrange GetBuildRequest sut; //Act sut = new GetBuildRequest("my-org", "my-project", 1); //Assert Assert.NotNull(sut); Assert.Equal("6.1-preview.6", sut.ApiVersion); Assert.Equal(HttpMethod.Get, sut.Method); Assert.Equal("https://dev.azure.com/my-org/my-project/_apis/build/1?api-version=6.1-preview.6", sut.RequestUri.AbsoluteUri); }
public async Task DeleteBuild(string projectIdentifier, int buildId, string organization = default, CancellationToken cancellationToken = default) { var request = new GetBuildRequest(organization ?? _options.Value.DefaultOrganization, projectIdentifier, buildId); request.Headers.Authorization = GetAuthZHeader(); var response = await SendAsync(request, cancellationToken); if (!response.IsSuccessStatusCode) { throw new AdoClientException("Could not find requested buildId"); } return; }
/// <summary> /// Gets a multiplayer server build. /// </summary> public static void GetBuild(GetBuildRequest request, Action <GetBuildResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { PlayFabHttp.MakeApiCall("/MultiplayerServer/GetBuild", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders); }