1 /*
2     SPDX-FileCopyrightText: 2015-2019 Krzysztof Nowicki <krissn@op.pl>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include <QMap>
8 
9 #include "ewstypes.h"
10 
11 const QString soapEnvNsUri = QStringLiteral("http://schemas.xmlsoap.org/soap/envelope/");
12 const QString ewsMsgNsUri = QStringLiteral("http://schemas.microsoft.com/exchange/services/2006/messages");
13 const QString ewsTypeNsUri = QStringLiteral("http://schemas.microsoft.com/exchange/services/2006/types");
14 
15 const QVector<QString> ewsItemTypeNames = {
16     QStringLiteral("Item"),
17     QStringLiteral("Message"),
18     QStringLiteral("CalendarItem"),
19     QStringLiteral("Contact"),
20     QStringLiteral("DistributionList"),
21     QStringLiteral("MeetingMessage"),
22     QStringLiteral("MeetingRequest"),
23     QStringLiteral("MeetingResponse"),
24     QStringLiteral("MeetingCancellation"),
25     QStringLiteral("Task"),
26 };
27 
28 static const QMap<QString, EwsResponseCode> ewsResponseCodeMapping = {{QLatin1String("NoError"), EwsResponseCodeNoError},
29                                                                       {QLatin1String("ErrorServerBusy"), EwsResponseCodeErrorServerBusy}};
30 
decodeEwsResponseCode(const QString & code)31 EwsResponseCode decodeEwsResponseCode(const QString &code)
32 {
33     if (ewsResponseCodeMapping.contains(code)) {
34         return ewsResponseCodeMapping[code];
35     } else {
36         return EwsResponseCodeUnknown;
37     }
38 }
39 
isEwsResponseCodeTemporaryError(EwsResponseCode code)40 bool isEwsResponseCodeTemporaryError(EwsResponseCode code)
41 {
42     switch (code) {
43     case EwsResponseCodeErrorServerBusy:
44         /* fall through */
45     case EwsResponseCodeUnauthorized:
46         return true;
47     default:
48         return false;
49     }
50     return false;
51 }
52