File indexing completed on 2024-06-02 05:34:34
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <ReviewsBackend/AbstractReviewsBackend.h> 0010 #include <attica/provider.h> 0011 0012 class KNSBackend; 0013 class QUrl; 0014 namespace Attica 0015 { 0016 class BaseJob; 0017 } 0018 0019 class KNSReviews : public AbstractReviewsBackend 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit KNSReviews(KNSBackend *backend); 0024 0025 void fetchReviews(AbstractResource *resource, int page = 1) override; 0026 bool isFetching() const override; 0027 void flagReview(Review *review, const QString &reason, const QString &text) override; 0028 void deleteReview(Review *review) override; 0029 void submitUsefulness(Review *review, bool useful) override; 0030 void logout() override; 0031 void registerAndLogin() override; 0032 void login() override; 0033 Rating *ratingForApplication(AbstractResource *resource) const override; 0034 bool hasCredentials() const override; 0035 0036 bool isResourceSupported(AbstractResource *resource) const override; 0037 0038 protected: 0039 void sendReview(AbstractResource *resource, const QString &summary, const QString &reviewText, const QString &rating, const QString &userName) override; 0040 QString userName() const override; 0041 0042 private Q_SLOTS: 0043 void commentsReceived(Attica::BaseJob *job); 0044 void credentialsReceived(const QString &user, const QString &password); 0045 0046 private: 0047 Attica::Provider provider() const; 0048 void acquireFetching(bool f); 0049 0050 KNSBackend *const m_backend; 0051 int m_fetching = 0; 0052 };