AusweisApp
Lade ...
Suche ...
Keine Treffer
ECardApiResult.h
gehe zur Dokumentation dieser Datei
1
10#pragma once
11
12#include "FailureCode.h"
13#include "GlobalStatus.h"
14
15#include <QCoreApplication>
16#include <QJsonObject>
17#include <QMap>
18#include <QPair>
19#include <QSharedData>
20#include <QString>
21#include <optional>
22
23
24class test_ECardApiResult;
25class test_StateRedirectBrowser;
26
27
28namespace governikus
29{
30
32{
35
40
41 public:
43 {
44 Unknown,
45 Ok,
46 Warning,
47 Error
48 };
49
87
88 enum class Origin
89 {
91 };
92
96
97 private:
98 class ResultData
99 : public QSharedData
100 {
101 public:
102 const Major mMajor;
103 const Minor mMinor;
104 const QString mMessage;
105 const QString mMessageLang;
106 const Origin mOrigin;
107 const std::optional<FailureCode> mFailureCode;
108
109 ResultData(Major pMajor, Minor pMinor, const QString& pMessage, Origin pOrigin, const std::optional<FailureCode>& pFailureCode = {});
110
111 bool operator ==(const ResultData& pOther) const
112 {
113 return mMajor == pOther.mMajor &&
114 mMinor == pOther.mMinor &&
115 mMessage == pOther.mMessage &&
116 mMessageLang == pOther.mMessageLang &&
117 mOrigin == pOther.mOrigin &&
118 mFailureCode == pOther.mFailureCode;
119 }
120
121
122 };
123
124 static const QMap<Major, QString> cMajorResults;
125 static const QMap<Minor, QString> cMinorResults;
126
127 static QMap<GlobalStatus::Code, Minor> cConversionMap1;
128 static QMap<Minor, GlobalStatus::Code> cConversionMap2;
129
130 static void initConversionMaps();
131 static void addConversionElement(GlobalStatus::Code pCode, Minor pMinor);
133 static Minor fromStatus(GlobalStatus::Code pCode);
134
137
138 static ECardApiResult fromStatus(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode);
139
140 static Major parseMajor(const QString& pMajor);
141 static Minor parseMinor(const QString& pMinor);
142
144
145 ECardApiResult(Major pMajor, Minor pMinor, const QString& pMessage = QString(), Origin pOrigin = Origin::Client, const std::optional<FailureCode>& pFailureCode = {});
146 explicit ECardApiResult(const QString& pMajor, const QString& pMinor = QString(), const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
147
148 public:
149 explicit ECardApiResult(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode = {});
150
151 bool operator ==(const ECardApiResult& pResult) const;
152
153 [[nodiscard]] static ECardApiResult createOk();
154
155 static bool isMajor(const QString& pMajor);
156 static bool isMinor(const QString& pMinor);
157 static QString getMessage(Minor pMinor);
158
159 [[nodiscard]] Major getMajor() const;
160 [[nodiscard]] Minor getMinor() const;
161 [[nodiscard]] QString getMessage() const;
162 [[nodiscard]] const QString& getMessageLang() const;
163 [[nodiscard]] const std::optional<FailureCode>& getFailureCode() const;
164
165 [[nodiscard]] static QString getMajorString(Major pMajor);
166 [[nodiscard]] static QString getMinorString(Minor pMinor);
167
168 [[nodiscard]] QString getMajorString() const;
169 [[nodiscard]] QString getMinorString() const;
170
171 [[nodiscard]] bool isValid() const;
172 [[nodiscard]] bool isOk() const;
173 [[nodiscard]] bool isOriginServer() const;
174 [[nodiscard]] QJsonObject toJson() const;
175
176 [[nodiscard]] GlobalStatus toStatus() const;
177 explicit operator GlobalStatus() const;
178};
179
180} // namespace governikus
181
182QDebug operator <<(QDebug pDbg, const governikus::ECardApiResult& pResult);
QDebug operator<<(QDebug pDbg, const governikus::ECardApiResult &pResult)
Definition ECardApiResult.cpp:702
Definition ECardApiResult.h:32
friend class ::test_StateRedirectBrowser
Definition ECardApiResult.h:39
QJsonObject toJson() const
Definition ECardApiResult.cpp:664
Minor
Definition ECardApiResult.h:51
QString getMajorString() const
Definition ECardApiResult.cpp:576
Minor getMinor() const
Definition ECardApiResult.cpp:540
Major
Definition ECardApiResult.h:43
static bool isMajor(const QString &pMajor)
Definition ECardApiResult.cpp:348
Major getMajor() const
Definition ECardApiResult.cpp:534
bool isOriginServer() const
Definition ECardApiResult.cpp:610
static bool isMinor(const QString &pMinor)
Definition ECardApiResult.cpp:354
static ECardApiResult createOk()
Definition ECardApiResult.cpp:85
bool operator==(const ECardApiResult &pResult) const
Definition ECardApiResult.cpp:528
const QString & getMessageLang() const
Definition ECardApiResult.cpp:552
Origin
Definition ECardApiResult.h:89
bool isOk() const
Definition ECardApiResult.cpp:604
QString getMessage() const
Definition ECardApiResult.cpp:546
friend class ::test_ECardApiResult
Definition ECardApiResult.h:38
QString getMinorString() const
Definition ECardApiResult.cpp:582
GlobalStatus toStatus() const
Definition ECardApiResult.cpp:616
bool isValid() const
Definition ECardApiResult.cpp:588
const std::optional< FailureCode > & getFailureCode() const
Definition ECardApiResult.cpp:558
Origin
Definition GlobalStatus.h:134
Code
Definition GlobalStatus.h:25
Definition IfdMessageResponse.h:15
Definition StartPaosResponse.h:19
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:112