#include "imguruploader.hpp"

#include <QBuffer>
#include <QJsonObject>
#include <QJsonValue>
#include <io/ioutils.hpp>
#include <notifications.hpp>
#include <screenshotutil.hpp>

void ImgurUploader::doUpload(QPixmap *pixmap) {
    QByteArray byteArray;
    QBuffer buffer(&byteArray);
    pixmap->save(&buffer, "PNG");
    ioutils::postJson(QUrl("https://api.imgur.com/3/image"),
                      QList<QPair<QString, QString>>()
                      << QPair<QString, QString>("Content-Type", "application/x-www-form-urlencoded")
                      << QPair<QString, QString>("Authorization", "Client-ID 8a98f183fc895da"),
                      byteArray, [](QJsonDocument res, QByteArray, QNetworkReply *) {
                          QString result = res.object()["data"].toObject()["link"].toString();
                          screenshotutil::toClipboard(result);
                          notifications::notify("KShare imgur Uploader ",
                                                result.isEmpty() ? "Failed upload!" : "Uploaded to imgur!");
                      });
}