JD2022-TU1/main/tools/qa/JustDash/WidgetController.cs

93 lines
No EOL
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Helpers;
using System.Web.Http;
using TeaBox.Extensions.IsIn;
using TeaBox.ProductionDigest;
using TeaBox.QuickBuild;
using TeaBox.QuickBuild.Structures;
namespace JustDash
{
public class WidgetController : ApiController
{
[HttpGet]
[ActionName("code")]
public object GetCode(int branchId)
{
return new
{
code = QueryAndSerializeReport(QuickBuildConfiguration.BuildAllPlatformsCode, branchId)
};
}
[HttpGet]
[ActionName("data")]
public object GetData(int branchId)
{
return new
{
data = QueryAndSerializeReport(QuickBuildConfiguration.BuildAllPlatformsData, branchId)
};
}
[HttpGet]
[ActionName("codeanddata")]
public object GetCodeAndData(int branchId)
{
return new
{
code = QueryAndSerializeReport(QuickBuildConfiguration.BuildAllPlatformsCode, branchId),
data = QueryAndSerializeReport(QuickBuildConfiguration.BuildAllPlatformsData, branchId)
};
}
[HttpGet]
[ActionName("branches")]
public object GetBranches()
{
return QuickBuildClient.Instance.GetBranches().Select(b => new
{
idBranch = b.Id,
name = b.Name
}).ToArray();
}
private object QueryAndSerializeReport(Configuration configuration, int branchId)
{
var report = QuickBuild.QueryQuickBuildReport(configuration, branchId);
if (report == null)
{
return null;
}
if (configuration.Path == QuickBuildConfiguration.BuildAllPlatformsCode.Path)
{
return new
{
changeList = report.Changelist(),
status = report.Status == BuildStatus.SUCCESSFUL ? "success" : "fail",
error = report.StepRuntimes.Count(s => s.Content.Status == BuildStatus.FAILED)
};
}
if (configuration.Path == QuickBuildConfiguration.BuildAllPlatformsData.Path)
{
return new
{
engineCl = "",
dataCl = report.Changelist(),
engineBuildSuccess = false,
dataBuildSuccess = report.Status == BuildStatus.SUCCESSFUL,
error = report.StepRuntimes.Count(s => s.Content.Status == BuildStatus.FAILED)
};
}
return null;
}
}
}