2022-12-13 15:13:13 +01:00
|
|
|
// Copyright (C) 2022 The Qt Company Ltd.
|
|
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QList>
|
|
|
|
|
|
|
|
|
|
namespace Axivion::Internal {
|
|
|
|
|
|
|
|
|
|
class BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString error;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class Project : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString name;
|
|
|
|
|
QString url;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class DashboardInfo : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString mainUrl;
|
|
|
|
|
QList<Project> projects;
|
|
|
|
|
};
|
|
|
|
|
|
2022-12-14 12:11:03 +01:00
|
|
|
class User : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString name;
|
|
|
|
|
QString displayName;
|
|
|
|
|
enum UserType { Dashboard, Virtual, Unknown } type;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class IssueKind : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString prefix;
|
|
|
|
|
QString niceSingular;
|
|
|
|
|
QString nicePlural;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class IssueCount : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString issueKind;
|
|
|
|
|
int total = 0;
|
|
|
|
|
int added = 0;
|
|
|
|
|
int removed = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ResultVersion : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString name;
|
|
|
|
|
QString timeStamp;
|
|
|
|
|
QList<IssueCount> issueCounts;
|
|
|
|
|
int linesOfCode = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ProjectInfo : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString name;
|
|
|
|
|
QList<User> users;
|
|
|
|
|
QList<ResultVersion> versions;
|
|
|
|
|
QList<IssueKind> issueKinds;
|
|
|
|
|
};
|
|
|
|
|
|
2022-12-16 23:11:46 +01:00
|
|
|
class ShortIssue : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QString state;
|
|
|
|
|
QString errorNumber;
|
|
|
|
|
QString message;
|
|
|
|
|
QString entity;
|
|
|
|
|
QString filePath;
|
|
|
|
|
QString severity;
|
|
|
|
|
int lineNumber = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class IssuesList : public BaseResult
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
QList<ShortIssue> issues;
|
|
|
|
|
};
|
|
|
|
|
|
2022-12-13 15:13:13 +01:00
|
|
|
namespace ResultParser {
|
|
|
|
|
|
|
|
|
|
DashboardInfo parseDashboardInfo(const QByteArray &input);
|
2022-12-14 12:11:03 +01:00
|
|
|
ProjectInfo parseProjectInfo(const QByteArray &input);
|
2022-12-16 23:11:46 +01:00
|
|
|
IssuesList parseIssuesList(const QByteArray &input);
|
2022-12-13 15:13:13 +01:00
|
|
|
|
|
|
|
|
} // ResultParser
|
|
|
|
|
|
|
|
|
|
} // Axivion::Internal
|