6#include <ifile/ITempFileManager.h>
9#include <imtservergql/ICollectionImportController.h>
10#include <imthype/IJobQueueManager.h>
11#include <GeneratedFiles/imtbasesdl/SDL/1.0/CPP/CollectionImport.h>
18namespace collectionImport = sdl::imtbase::CollectionImport;
21class CGqlCollectionImportControllerComp:
public collectionImport::CGraphQlHandlerCompBase
23 Q_DECLARE_TR_FUNCTIONS(CGqlCollectionImportControllerComp)
25 typedef collectionImport::CGraphQlHandlerCompBase BaseClass;
27 I_BEGIN_COMPONENT(CGqlCollectionImportControllerComp);
28 I_ASSIGN(m_collectionImportControllerCompPtr,
"CollectionImportController",
"Collection import controller",
false,
"CollectionImportController");
31 template<
typename GqlRequest>
32 static bool FillSessionInfo(
33 const GqlRequest& request,
34 imtservergql::ICollectionImportController::SessionInfo& sessionInfo,
35 QString& errorMessage);
37 template<
typename GqlRequest>
38 static QByteArray GetCancelSessionId(
const GqlRequest& request);
42 virtual collectionImport::CSessionStatus OnBeginCollectionImportSession(
43 const collectionImport::CBeginCollectionImportSessionGqlRequest& request,
44 const ::imtgql::CGqlRequest& gqlRequest,
45 QString& errorMessage)
const override;
46 virtual collectionImport::CSessionStatus OnCancelCollectionImportSession(
47 const collectionImport::CCancelCollectionImportSessionGqlRequest& request,
48 const ::imtgql::CGqlRequest& gqlRequest,
49 QString& errorMessage)
const override;
52 I_REF(imtservergql::ICollectionImportController, m_collectionImportControllerCompPtr);
56template<
typename GqlRequest>
57bool CGqlCollectionImportControllerComp::FillSessionInfo(
58 const GqlRequest& request,
59 imtservergql::ICollectionImportController::SessionInfo& sessionInfo,
60 QString& errorMessage)
62 auto sdlImportParams = request.GetRequestedArguments().input;
63 if (sdlImportParams.Version_1_0){
64 auto sdlImportParamsV1_0 = *sdlImportParams.Version_1_0;
66 if (sdlImportParamsV1_0.sessionId && sdlImportParamsV1_0.collectionId && sdlImportParamsV1_0.fileList && sdlImportParamsV1_0.fileList->count() > 0){
67 sessionInfo.sessionId = *sdlImportParamsV1_0.sessionId;
68 sessionInfo.collectionId = *sdlImportParamsV1_0.collectionId;
70 for (
const auto& fileInfo : *sdlImportParamsV1_0.fileList){
71 if (!fileInfo.HasValue()){
74 if (fileInfo->fileId && fileInfo->fileName && fileInfo->fileSize && fileInfo->objectTypeId){
75 sessionInfo.files.emplace_back();
76 sessionInfo.files.back().id = *fileInfo->fileId;
77 sessionInfo.files.back().name = *fileInfo->fileName;
78 sessionInfo.files.back().size = *fileInfo->fileSize;
79 sessionInfo.files.back().objectTypeId = *fileInfo->objectTypeId;
82 errorMessage = tr(
"Invalid file info in the request");
91 errorMessage = tr(
"Invalid import request");
95 errorMessage = tr(
"Invalid import request");
102template<
typename GqlRequest>
103QByteArray CGqlCollectionImportControllerComp::GetCancelSessionId(
104 const GqlRequest& request)
106 auto sdlSessionId = request.GetRequestedArguments().input;
107 if (sdlSessionId.Version_1_0 && sdlSessionId.Version_1_0->sessionId){
108 QByteArray sessionId = *sdlSessionId.Version_1_0->sessionId;