Files

70 lines
3.5 KiB
C++

#pragma once
#include "common/Auth.h"
#include <json/json.h>
#include <optional>
#include <string>
namespace visione::services
{
class ReportService
{
public:
Json::Value createReport(const auth::UserContext &user, const Json::Value &body);
Json::Value listReports(const auth::UserContext &user,
const std::optional<std::string> &status,
const std::optional<std::string> &categoryId,
const std::optional<std::string> &areaId);
Json::Value assignedReports(const auth::UserContext &user,
const std::optional<std::string> &page,
const std::optional<std::string> &perPage);
Json::Value listAreas();
Json::Value openReports(const auth::UserContext &user,
const std::optional<std::string> &page,
const std::optional<std::string> &perPage);
Json::Value otherOperatorReports(const auth::UserContext &user,
const std::optional<std::string> &page,
const std::optional<std::string> &perPage);
Json::Value listCategories(const auth::UserContext &user);
Json::Value listOperatorTeams(const auth::UserContext &user);
Json::Value reportDetail(const auth::UserContext &user, long long reportId);
Json::Value interventionSummary(const auth::UserContext &user, long long reportId);
Json::Value publicInterventionSummary(const std::string &token);
Json::Value updateStatus(const auth::UserContext &user,
long long reportId,
const Json::Value &body);
Json::Value takeReport(const auth::UserContext &user, long long reportId);
Json::Value addMessage(const auth::UserContext &user,
long long reportId,
const Json::Value &body);
Json::Value listMessages(const auth::UserContext &user, long long reportId);
Json::Value assignTeam(const auth::UserContext &user,
long long reportId,
const Json::Value &body);
Json::Value addFeedback(const auth::UserContext &user,
long long reportId,
const Json::Value &body);
Json::Value flagReport(const auth::UserContext &user,
long long reportId,
const Json::Value &body);
Json::Value flagMessage(const auth::UserContext &user,
long long reportId,
long long messageId,
const Json::Value &body);
Json::Value teamSuggestions(const auth::UserContext &user, long long reportId);
Json::Value createInterventionLink(const auth::UserContext &user, long long reportId);
Json::Value revokeInterventionLink(const auth::UserContext &user, long long reportId);
Json::Value openDataReports(const std::optional<std::string> &page,
const std::optional<std::string> &perPage);
Json::Value canAddMedia(const auth::UserContext &user, long long reportId);
Json::Value addMedia(const auth::UserContext &user,
long long reportId,
const std::string &url,
const std::string &originalFilename,
const std::string &contentType,
const std::string &mediaKind,
size_t sizeBytes);
};
} // namespace visione::services