ImagingTools Core SDK
CHeadersDataProviderComp.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// ImtCore includes
6#include <imtservergql/CGqlRequestHandlerCompBase.h>
7
8
9namespace imtservergql
10{
11
12
16class CHeadersDataProviderComp: public imtservergql::CGqlRequestHandlerCompBase
17{
18public:
19 typedef imtservergql::CGqlRequestHandlerCompBase BaseClass;
20
21 I_BEGIN_COMPONENT(CHeadersDataProviderComp);
22 I_REGISTER_INTERFACE(imtgql::IGqlRequestHandler);
23 I_ASSIGN_MULTI_0(m_headersIdsAttrPtr, "HeadersIds", "Headers Ids", true);
24 I_ASSIGN_MULTI_0(m_headersSearchByFilterAttrPtr, "SearchByFilterIds", "Search by filter", false);
25 I_ASSIGN_MULTI_0(m_headersNamesAttrPtr, "HeadersNames", "Headers names", true);
26 I_ASSIGN_MULTI_0(m_headerPermissionsAttrPtr, "HeaderPermissions", "Header permissions", false);
27 I_END_COMPONENT;
28
29protected:
30 // reimplemented (imtservergql::CGqlRepresentationControllerCompBase)
31 virtual bool IsRequestSupported(const imtgql::CGqlRequest& gqlRequest) const override;
32 virtual QJsonObject CreateInternalResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
33
34private:
35 bool CheckHeaderPermission(const QByteArray& headerId, const imtgql::IGqlContext& gqlContext) const;
36
37private:
38 I_MULTIATTR(QString, m_headersIdsAttrPtr);
39 I_MULTIATTR(QString, m_headersSearchByFilterAttrPtr);
40 I_MULTITEXTATTR(m_headersNamesAttrPtr);
41 I_MULTIATTR(QByteArray, m_headerPermissionsAttrPtr);
42};
43
44
45} // namespace imtservergql
46