From 056b90c662df57279ab1c17a488cd877e750c1aa Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 22 Aug 2016 15:01:55 -0700 Subject: [PATCH] separate into four files --- interface/src/ui/Snapshot.cpp | 59 +-------------------- interface/src/ui/Snapshot.h | 10 ---- interface/src/ui/SnapshotUploader.cpp | 75 +++++++++++++++++++++++++++ interface/src/ui/SnapshotUploader.h | 26 ++++++++++ 4 files changed, 102 insertions(+), 68 deletions(-) create mode 100644 interface/src/ui/SnapshotUploader.cpp create mode 100644 interface/src/ui/SnapshotUploader.h diff --git a/interface/src/ui/Snapshot.cpp b/interface/src/ui/Snapshot.cpp index 4513894f5a..c2fcafb2f3 100644 --- a/interface/src/ui/Snapshot.cpp +++ b/interface/src/ui/Snapshot.cpp @@ -32,7 +32,7 @@ #include "Application.h" #include "Snapshot.h" -#include "scripting/WindowScriptingInterface.h" +#include "SnapshotUploader.h" // filename format: hifi-snap-by-%username%-on-%date%_%time%_@-%location%.jpg // %1 <= username, %2 <= date and time, %3 <= current location @@ -173,60 +173,3 @@ void Snapshot::uploadSnapshot(const QString& filename) { multiPart); } -void SnapshotUploader::uploadSuccess(QNetworkReply& reply) { - const QString STORY_UPLOAD_URL = "/api/v1/user_stories"; - static SnapshotUploader uploader; - - // parse the reply for the thumbnail_url - QByteArray contents = reply.readAll(); - QJsonParseError jsonError; - auto doc = QJsonDocument::fromJson(contents, &jsonError); - if (jsonError.error == QJsonParseError::NoError) { - auto dataObject = doc.object().value("data").toObject(); - QString thumbnailUrl = dataObject.value("thumbnail_url").toString(); - QString imageUrl = dataObject.value("image_url").toString(); - auto addressManager = DependencyManager::get(); - QString placeName = addressManager->getPlaceName(); - if (placeName.isEmpty()) { - placeName = addressManager->getHost(); - } - QString currentPath = addressManager->currentPath(true); - - // create json post data - QJsonObject rootObject; - QJsonObject userStoryObject; - QJsonObject detailsObject; - detailsObject.insert("image_url", imageUrl); - QString pickledDetails = QJsonDocument(detailsObject).toJson(); - userStoryObject.insert("details", pickledDetails); - userStoryObject.insert("thumbnail_url", thumbnailUrl); - userStoryObject.insert("place_name", placeName); - userStoryObject.insert("path", currentPath); - userStoryObject.insert("action", "snapshot"); - rootObject.insert("user_story", userStoryObject); - - auto accountManager = DependencyManager::get(); - JSONCallbackParameters callbackParams(&uploader, "createStorySuccess", &uploader, "createStoryFailure"); - - accountManager->sendRequest(STORY_UPLOAD_URL, - AccountManagerAuth::Required, - QNetworkAccessManager::PostOperation, - callbackParams, - QJsonDocument(rootObject).toJson()); - - } else { - emit DependencyManager::get()->snapshotShared(contents); - } -} - -void SnapshotUploader::uploadFailure(QNetworkReply& reply) { - emit DependencyManager::get()->snapshotShared(reply.readAll()); -} - -void SnapshotUploader::createStorySuccess(QNetworkReply& reply) { - emit DependencyManager::get()->snapshotShared(""); -} - -void SnapshotUploader::createStoryFailure(QNetworkReply& reply) { - emit DependencyManager::get()->snapshotShared(reply.readAll()); -} diff --git a/interface/src/ui/Snapshot.h b/interface/src/ui/Snapshot.h index e780537b76..90138d450d 100644 --- a/interface/src/ui/Snapshot.h +++ b/interface/src/ui/Snapshot.h @@ -32,16 +32,6 @@ private: QUrl _URL; }; - -class SnapshotUploader: public QObject { - Q_OBJECT -public slots: - void uploadSuccess(QNetworkReply& reply); - void uploadFailure(QNetworkReply& reply); - void createStorySuccess(QNetworkReply& reply); - void createStoryFailure(QNetworkReply& reply); -}; - class Snapshot { public: static QString saveSnapshot(QImage image); diff --git a/interface/src/ui/SnapshotUploader.cpp b/interface/src/ui/SnapshotUploader.cpp new file mode 100644 index 0000000000..5bc9bb386c --- /dev/null +++ b/interface/src/ui/SnapshotUploader.cpp @@ -0,0 +1,75 @@ +// +// SnapshotUploader.cpp +// interface/src/ui +// +// Created by Howard Stearns on 8/22/2016 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include +#include +#include +#include "scripting/WindowScriptingInterface.h" +#include "SnapshotUploader.h" + +void SnapshotUploader::uploadSuccess(QNetworkReply& reply) { + const QString STORY_UPLOAD_URL = "/api/v1/user_stories"; + static SnapshotUploader uploader; + + // parse the reply for the thumbnail_url + QByteArray contents = reply.readAll(); + QJsonParseError jsonError; + auto doc = QJsonDocument::fromJson(contents, &jsonError); + if (jsonError.error == QJsonParseError::NoError) { + auto dataObject = doc.object().value("data").toObject(); + QString thumbnailUrl = dataObject.value("thumbnail_url").toString(); + QString imageUrl = dataObject.value("image_url").toString(); + auto addressManager = DependencyManager::get(); + QString placeName = addressManager->getPlaceName(); + if (placeName.isEmpty()) { + placeName = addressManager->getHost(); + } + QString currentPath = addressManager->currentPath(true); + + // create json post data + QJsonObject rootObject; + QJsonObject userStoryObject; + QJsonObject detailsObject; + detailsObject.insert("image_url", imageUrl); + QString pickledDetails = QJsonDocument(detailsObject).toJson(); + userStoryObject.insert("details", pickledDetails); + userStoryObject.insert("thumbnail_url", thumbnailUrl); + userStoryObject.insert("place_name", placeName); + userStoryObject.insert("path", currentPath); + userStoryObject.insert("action", "snapshot"); + rootObject.insert("user_story", userStoryObject); + + auto accountManager = DependencyManager::get(); + JSONCallbackParameters callbackParams(&uploader, "createStorySuccess", &uploader, "createStoryFailure"); + + accountManager->sendRequest(STORY_UPLOAD_URL, + AccountManagerAuth::Required, + QNetworkAccessManager::PostOperation, + callbackParams, + QJsonDocument(rootObject).toJson()); + + } + else { + emit DependencyManager::get()->snapshotShared(contents); + } +} + +void SnapshotUploader::uploadFailure(QNetworkReply& reply) { + emit DependencyManager::get()->snapshotShared(reply.readAll()); +} + +void SnapshotUploader::createStorySuccess(QNetworkReply& reply) { + emit DependencyManager::get()->snapshotShared(QString()); +} + +void SnapshotUploader::createStoryFailure(QNetworkReply& reply) { + emit DependencyManager::get()->snapshotShared(reply.readAll()); +} \ No newline at end of file diff --git a/interface/src/ui/SnapshotUploader.h b/interface/src/ui/SnapshotUploader.h new file mode 100644 index 0000000000..d4a5f86431 --- /dev/null +++ b/interface/src/ui/SnapshotUploader.h @@ -0,0 +1,26 @@ +// +// SnapshotUploader.h +// interface/src/ui +// +// Created by Howard Stearns on 8/22/2016 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef hifi_SnapshotUploader_h +#define hifi_SnapshotUploader_h + +#include +#include + +class SnapshotUploader : public QObject { + Q_OBJECT + public slots: + void uploadSuccess(QNetworkReply& reply); + void uploadFailure(QNetworkReply& reply); + void createStorySuccess(QNetworkReply& reply); + void createStoryFailure(QNetworkReply& reply); +}; +#endif // hifi_SnapshotUploader_h \ No newline at end of file