ImagingTools Core SDK
CGqlRequestHandlerCompBase.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <ilog/TLoggerCompWrap.h>
7#include <iqt/ITranslationManager.h>
8
9// ImtCore includes
10#include <imtserverapp/IRepresentationController.h>
11#include <imtserverapp/ICommandPermissionsProvider.h>
12#include <imtgql/IGqlRequestHandler.h>
13#include <imtauth/IPermissionChecker.h>
14
15
16namespace imtservergql
17{
18
19
20class CGqlRequestHandlerCompBase:
21 public ilog::CLoggerComponentBase,
22 virtual public imtgql::IGqlRequestHandler
23{
24public:
25 typedef ilog::CLoggerComponentBase BaseClass;
26
27 I_BEGIN_BASE_COMPONENT(CGqlRequestHandlerCompBase);
28 I_REGISTER_INTERFACE(imtgql::IGqlRequestHandler);
29 I_ASSIGN_MULTI_0(m_commandIdsAttrPtr, "CommandIds", "List of model-IDs for GraphQL-response", true);
30 I_ASSIGN(m_translationManagerCompPtr, "TranslationManager", "Translation manager", false, "TranslationManager");
31 I_END_COMPONENT;
32
33 // reimplemented (imtgql::IGqlRequestHandler)
34 virtual bool IsRequestSupported(const imtgql::CGqlRequest& gqlRequest) const override;
35 virtual QJsonObject CreateResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
36
37protected:
38 virtual iprm::IParamsSetUniquePtr CreateContextParams(const imtgql::CGqlRequest& gqlRequest) const;
39
40 // Abstract methods
41 virtual QJsonObject CreateInternalResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const = 0;
42
43protected:
44 I_MULTIATTR(QByteArray, m_commandIdsAttrPtr);
45 I_REF(iqt::ITranslationManager, m_translationManagerCompPtr);
46};
47
48
49} // namespace imtservergql
50
51