1 /*
2     SPDX-FileCopyrightText: 2015-2017 Krzysztof Nowicki <krissn@op.pl>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QList>
10 #include <QSharedPointer>
11 
12 #include "ewsfolder.h"
13 #include "ewsrequest.h"
14 #include "ewstypes.h"
15 
16 class QXmlStreamReader;
17 
18 class EwsMoveFolderRequest : public EwsRequest
19 {
20     Q_OBJECT
21 public:
22     class Response : public EwsRequest::Response
23     {
24     public:
folderId()25         const EwsId &folderId() const
26         {
27             return mId;
28         }
29 
30     protected:
31         Response(QXmlStreamReader &reader);
32 
33         EwsId mId;
34 
35         friend class EwsMoveFolderRequest;
36     };
37 
38     EwsMoveFolderRequest(EwsClient &client, QObject *parent);
39     ~EwsMoveFolderRequest() override;
40 
setFolderIds(const EwsId::List & ids)41     void setFolderIds(const EwsId::List &ids)
42     {
43         mIds = ids;
44     }
45 
setDestinationFolderId(const EwsId & id)46     void setDestinationFolderId(const EwsId &id)
47     {
48         mDestFolderId = id;
49     }
50 
51     void start() override;
52 
responses()53     const QList<Response> &responses() const
54     {
55         return mResponses;
56     }
57 
58 protected:
59     bool parseResult(QXmlStreamReader &reader) override;
60     bool parseItemsResponse(QXmlStreamReader &reader);
61 
62 private:
63     EwsId::List mIds;
64     EwsId mDestFolderId;
65     QList<Response> mResponses;
66 };
67 
68