~jamesh/storage-provider-webdav/delete-item

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "OwncloudProvider.h"

#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrl>

using namespace std;
using namespace unity::storage::provider;

OwncloudProvider::OwncloudProvider()
{
}

OwncloudProvider::~OwncloudProvider() = default;

QUrl OwncloudProvider::base_url(Context const& ctx) const
{
    const auto& creds = boost::get<PasswordCredentials>(ctx.credentials);
    return QUrl(QStringLiteral("http://localhost:8888/owncloud/remote.php/dav/files/%1/").arg(QString::fromStdString(creds.username)));
}

QNetworkReply *OwncloudProvider::send_request(
    QNetworkRequest& request, QByteArray const& verb, QIODevice* data,
    Context const& ctx) const
{
    Q_UNUSED(ctx);

    const auto& creds = boost::get<PasswordCredentials>(ctx.credentials);
    const auto credentials = QByteArray::fromStdString(creds.username + ":" +
                                                       creds.password);
    request.setRawHeader(QByteArrayLiteral("Authorization"),
                         QByteArrayLiteral("Basic ") + credentials.toBase64());
    printf("Sending request to %s with credentials %s\n",
           request.url().toEncoded().constData(), credentials.constData());
    QNetworkReply *reply = network_->sendCustomRequest(request, verb, data);
    return reply;
}