AusweisApp2
ECardApiResult.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "GlobalStatus.h"
10 
11 #include <QCoreApplication>
12 #include <QJsonObject>
13 #include <QMap>
14 #include <QPair>
15 #include <QSharedData>
16 #include <QString>
17 
18 class test_ECardApiResult;
19 class test_UrlUtil;
20 
21 namespace governikus
22 {
23 
25 {
26  Q_GADGET
27  Q_DECLARE_TR_FUNCTIONS(governikus::ECardApiResult)
28 
29  friend class RemoteMessageResponse;
30  friend class StartPaosResponse;
31  friend class ::test_ECardApiResult;
32  friend class ::test_UrlUtil;
33 
34  public:
35  enum class Major
36  {
37  Unknown,
38  Ok,
39  Warning,
40  Error
41  };
42 
43  enum class Minor
44  {
45  null, // Used by Major::Ok and undefined state only!
79  };
80 
81  enum class Origin
82  {
83  Server, Client
84  };
85 
86  Q_ENUM(Major)
87  Q_ENUM(Minor)
88  Q_ENUM(Origin)
89 
90  private:
91  class ResultData
92  : public QSharedData
93  {
94  public:
95  const Major mMajor;
96  const Minor mMinor;
97  const QString mMessage;
98  const QString mMessageLang;
99  const Origin mOrigin;
100 
101  ResultData(Major pMajor, Minor pMinor, const QString& pMessage, Origin pOrigin);
102 
103  bool operator ==(const ResultData& pOther) const
104  {
105  return mMajor == pOther.mMajor &&
106  mMinor == pOther.mMinor &&
107  mMessage == pOther.mMessage &&
108  mMessageLang == pOther.mMessageLang &&
109  mOrigin == pOther.mOrigin;
110  }
111 
112 
113  };
114 
115  static const QMap<Major, QString> cMajorResults;
116  static const QMap<Minor, QString> cMinorResults;
117 
118  static QMap<GlobalStatus::Code, Minor> cConversionMap1;
119  static QMap<Minor, GlobalStatus::Code> cConversionMap2;
120 
121  static void initConversionMaps();
122  static void addConversionElement(GlobalStatus::Code pCode, Minor pMinor);
123  static GlobalStatus::Code toStatus(Minor pMinor);
124  static Minor fromStatus(GlobalStatus::Code pCode);
125 
127  static ECardApiResult::Origin fromStatus(GlobalStatus::Origin pSelf);
128 
129  static ECardApiResult fromStatus(const GlobalStatus& pStatus);
130 
131  static Major parseMajor(const QString& pMajor);
132  static Minor parseMinor(const QString& pMinor);
133 
134  QSharedDataPointer<ResultData> d;
135 
136  ECardApiResult(Major pMajor, Minor pMinor, const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
137  explicit ECardApiResult(const QString& pMajor, const QString& pMinor = QString(), const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
138 
139  public:
140  explicit ECardApiResult(const GlobalStatus& pStatus);
141 
142  bool operator ==(const ECardApiResult& pResult) const;
143 
144  static ECardApiResult createOk();
145 
146  static bool isMajor(const QString& pMajor);
147  static bool isMinor(const QString& pMinor);
148  static QString getMessage(Minor pMinor);
149 
150  [[nodiscard]] Major getMajor() const;
151  [[nodiscard]] Minor getMinor() const;
152  [[nodiscard]] QString getMessage() const;
153  [[nodiscard]] const QString& getMessageLang() const;
154 
155  static QString getMajorString(Major pMajor);
156  static QString getMinorString(Minor pMinor);
157 
158  [[nodiscard]] QString getMajorString() const;
159  [[nodiscard]] QString getMinorString() const;
160 
161  [[nodiscard]] bool isValid() const;
162  [[nodiscard]] bool isOk() const;
163  [[nodiscard]] bool isOriginServer() const;
164  [[nodiscard]] QJsonObject toJson() const;
165 
166  [[nodiscard]] GlobalStatus toStatus() const;
167  explicit operator GlobalStatus() const;
168 };
169 
170 } // namespace governikus
171 
172 QDebug operator <<(QDebug pDbg, const governikus::ECardApiResult& pResult);
QDebug operator<<(QDebug pDbg, const governikus::ECardApiResult &pResult)
Definition: ECardApiResult.cpp:659
Definition: ECardApiResult.h:25
QJsonObject toJson() const
Definition: ECardApiResult.cpp:627
Minor
Definition: ECardApiResult.h:44
QString getMajorString() const
Definition: ECardApiResult.cpp:546
Minor getMinor() const
Definition: ECardApiResult.cpp:516
Major
Definition: ECardApiResult.h:36
static bool isMajor(const QString &pMajor)
Definition: ECardApiResult.cpp:330
Major getMajor() const
Definition: ECardApiResult.cpp:510
bool isOriginServer() const
Definition: ECardApiResult.cpp:580
static bool isMinor(const QString &pMinor)
Definition: ECardApiResult.cpp:336
static ECardApiResult createOk()
Definition: ECardApiResult.cpp:85
bool operator==(const ECardApiResult &pResult) const
Definition: ECardApiResult.cpp:504
const QString & getMessageLang() const
Definition: ECardApiResult.cpp:528
Origin
Definition: ECardApiResult.h:82
bool isOk() const
Definition: ECardApiResult.cpp:574
QString getMessage() const
Definition: ECardApiResult.cpp:522
QString getMinorString() const
Definition: ECardApiResult.cpp:552
GlobalStatus toStatus() const
Definition: ECardApiResult.cpp:586
bool isValid() const
Definition: ECardApiResult.cpp:558
Origin
Definition: GlobalStatus.h:122
Code
Definition: GlobalStatus.h:26
Definition: RemoteMessageResponse.h:15
Definition: StartPaosResponse.h:21
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15