AusweisApp
Lade ...
Suche ...
Keine Treffer
ECardApiResult.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "FailureCode.h"
12#include "GlobalStatus.h"
13
14#include <QCoreApplication>
15#include <QJsonObject>
16#include <QMap>
17#include <QPair>
18#include <QSharedData>
19#include <QString>
20#include <optional>
21
22
23class test_ECardApiResult;
24class test_StateRedirectBrowser;
25
26
27namespace governikus
28{
29
31{
34
39
40 public:
42 {
43 Unknown,
44 Ok,
45 Warning,
46 Error
47 };
48
86
87 enum class Origin
88 {
90 };
91
95
96 private:
97 class ResultData
98 : public QSharedData
99 {
100 public:
101 const Major mMajor;
102 const Minor mMinor;
103 const QString mMessage;
104 const QString mMessageLang;
105 const Origin mOrigin;
106 const std::optional<FailureCode> mFailureCode;
107
108 ResultData(Major pMajor, Minor pMinor, const QString& pMessage, Origin pOrigin, const std::optional<FailureCode>& pFailureCode = {});
109
110 bool operator ==(const ResultData& pOther) const
111 {
112 return mMajor == pOther.mMajor &&
113 mMinor == pOther.mMinor &&
114 mMessage == pOther.mMessage &&
115 mMessageLang == pOther.mMessageLang &&
116 mOrigin == pOther.mOrigin &&
117 mFailureCode == pOther.mFailureCode;
118 }
119
120
121 };
122
123 static const QMap<Major, QString> cMajorResults;
124 static const QMap<Minor, QString> cMinorResults;
125
126 static QMap<GlobalStatus::Code, Minor> cConversionMap1;
127 static QMap<Minor, GlobalStatus::Code> cConversionMap2;
128
129 static void initConversionMaps();
130 static void addConversionElement(GlobalStatus::Code pCode, Minor pMinor);
132 static Minor fromStatus(GlobalStatus::Code pCode);
133
136
137 static ECardApiResult fromStatus(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode);
138
139 static Major parseMajor(const QString& pMajor);
140 static Minor parseMinor(const QString& pMinor);
141
143
144 ECardApiResult(Major pMajor, Minor pMinor, const QString& pMessage = QString(), Origin pOrigin = Origin::Client, const std::optional<FailureCode>& pFailureCode = {});
145 explicit ECardApiResult(const QString& pMajor, const QString& pMinor = QString(), const QString& pMessage = QString(), Origin pOrigin = Origin::Client);
146
147 public:
148 explicit ECardApiResult(const GlobalStatus& pStatus, const std::optional<FailureCode>& pFailureCode = {});
149
150 bool operator ==(const ECardApiResult& pResult) const;
151
152 [[nodiscard]] static ECardApiResult createOk();
153
154 static bool isMajor(const QString& pMajor);
155 static bool isMinor(const QString& pMinor);
156 static QString getMessage(Minor pMinor);
157
158 [[nodiscard]] Major getMajor() const;
159 [[nodiscard]] Minor getMinor() const;
160 [[nodiscard]] QString getMessage() const;
161 [[nodiscard]] const QString& getMessageLang() const;
162 [[nodiscard]] const std::optional<FailureCode>& getFailureCode() const;
163
164 [[nodiscard]] static QString getMajorString(Major pMajor);
165 [[nodiscard]] static QString getMinorString(Minor pMinor);
166
167 [[nodiscard]] QString getMajorString() const;
168 [[nodiscard]] QString getMinorString() const;
169
170 [[nodiscard]] bool isValid() const;
171 [[nodiscard]] bool isOk() const;
172 [[nodiscard]] bool isOriginServer() const;
173 [[nodiscard]] QJsonObject toJson() const;
174
175 [[nodiscard]] GlobalStatus toStatus() const;
176 explicit operator GlobalStatus() const;
177};
178
179} // namespace governikus
180
181QDebug operator <<(QDebug pDbg, const governikus::ECardApiResult& pResult);
QDebug operator<<(QDebug pDbg, const governikus::ECardApiResult &pResult)
Definition ECardApiResult.cpp:702
Definition ECardApiResult.h:31
friend class ::test_StateRedirectBrowser
Definition ECardApiResult.h:38
QJsonObject toJson() const
Definition ECardApiResult.cpp:664
Minor
Definition ECardApiResult.h:50
QString getMajorString() const
Definition ECardApiResult.cpp:576
Minor getMinor() const
Definition ECardApiResult.cpp:540
Major
Definition ECardApiResult.h:42
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:88
bool isOk() const
Definition ECardApiResult.cpp:604
QString getMessage() const
Definition ECardApiResult.cpp:546
friend class ::test_ECardApiResult
Definition ECardApiResult.h:37
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:139
Code
Definition GlobalStatus.h:30
Definition IfdMessageResponse.h:15
Definition StartPaosResponse.h:23
Implementation of GeneralAuthenticate response APDUs.
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:114