Teamcenter C++ API Reference  2312
LisfmwrkUtils.hxx
Go to the documentation of this file.
1 // Copyright 2022 Siemens Digital Industries Software
2 // ==================================================
3 // Copyright 2017.
4 // Siemens Product Lifecycle Management Software Inc.
5 // All Rights Reserved.
6 // ==================================================
7 // Copyright 2022 Siemens Digital Industries Software
8 
16 #ifndef LIS0LISFMWRK_LISFMWRKUTILS_HXX
17 #define LIS0LISFMWRK_LISFMWRKUTILS_HXX
18 
19 #include <string>
20 #include <vector>
21 
22 #include <unidefs.h>
23 
26 #include <Lis0lisfmwrk/libLis0lisfmwrk_exports.h>
27 
28 
38 namespace lis0lisfmwrk
39 {
40  class LisfmwrkUtils;
41 }
42 
47 {
48  GET,
49  POST,
50  PUT
51 };
56 {
57  XML,
61 };
62 
66 typedef struct UserOAuthTokens
67 {
68  std::string lis0AccessToken;
69  std::string lis0AccessTokenSecret;
70  std::string lis0RequestToken;
71  std::string lis0RequestTokenSecret;
72 } UserTokens;
73 
78 typedef struct HttpRequestInput
79 {
80  std::string url;
82  std::string postData;
84  std::string consumerKey;
85  std::string consumerSecret;
86  std::string tokenKey;
87  std::string tokenSecret;
88  std::string cookieStr;
89  std::map<std::string, std::string> headers;
92 
96 typedef struct ServiceProviderInfo
97 {
98  std::string providerUrl;
99  std::string providerName;
100  std::string description;
101  std::vector<std::string> domain;
104 
110 {
111  std::vector <std::string> catalogDomain;
114 
120 {
121  std::vector<LIS_service_catalog_info_t> catalogList;
124 
129 {
130  std::string domain;
132 
137 {
138  std::string domain;
140 
145 {
146  std::vector<LIS_delegated_dialog_info_extend_t> dialogList;
147  std::vector<LIS_factory_service_info_extend_t> factoryServiceList;
149 
150 
151 class LIS0LISFMWRK_API lis0lisfmwrk::LisfmwrkUtils
152 {
153  public:
164  static int createHttpRequestInput( const std::string &url,
165  const RequestMethod method,
166  const std::string &postData,
167  const tag_t userAuthentication,
168  const ResponseFormat &format,
169  HttpRequestInputS *requestInput
170  );
183  static int requestHttps( const bool isRequestTokenUrl,
184  const HttpRequestInputS &requestInput,
185  std::string& responseString,
186  long &responseCode,
187  std::string& eTagString,
188  int getResponseHeader=0
189  );
198  static int requestHttps( const HttpRequestInputS &requestInput,
199  std::string& responseString
200  );
209  static int requestHttps( const HttpRequestInputS &requestInput,
210  std::string& responseString,
211  long &responseCode,
212  std::string& eTagString,
213  int getResponseHeader=0
214  );
224  static int parseRootServiceContent( const std::string& responseContent,
225  LIS_rootservice_response_extend_t &responseInfo
226  );
236  static int parseCatalogContent( const std::string& responseContent,
237  std::vector<ServiceProviderInfo> &providerInfoList
238  );
248  static int parseServiceContent( const std::string& responseContent,
249  LIS_service_info_extend_t &serviceInfo
250  );
260  static int parseResourceContent( const std::string& responseContent,
261  LIS_resource_info_t &resourceInfo
262  );
272  static int validateLicense( const char* licensePackage
273  );
282  static int getOAuthAuthorizationURL( const tag_t serviceProvider,
283  char** userAuthorizationUrl
284  );
295  static int getRelationTypes( const std::string& uidContextObj,
296  const std::string& remoteObjType,
297  const std::string& uidServiceProvider,
298  std::vector<std::string>&relationNames
299  );
310  static int getRelationTypesTags( const std::string& uidContextObj,
311  const std::string& remoteObjType,
312  const std::string& uidServiceProvider,
313  std::vector< tag_t >&relationNames
314  );
325  static int queryAllRelationTypeRevise2( const tag_t serviceProviderType,
326  const tag_t primaryObjType,
327  const std::string& remoteObjectType,
328  std::vector<tag_t>&relationNames
329  );
341  static int queryAllRelationTypeRevise( const tag_t serviceProviderType,
342  const tag_t primaryObjType,
343  const std::string &remoteObjectType,
344  std::vector<tag_t>&relationNames,
345  bool& isRelTypeExist
346  );
356  static int findAllPrimaryObjForRemoteObj( const tag_t serviceProviderType,
357  const std::string& remoteObjectType,
358  std::vector<tag_t> &supportedPrimaryObjTypes
359  );
369  static int findExactMatchOfPrimaryObjectList( const tag_t primaryObjType,
370  const std::vector<tag_t > &supportedPrimaryObjTypes,
371  std::vector<tag_t>& exactListOfprimaryObjTypes
372  );
373 
382  static int getSSOParamsFromRootsvc( const std::string &responseString,
383  std::string &ssoAppId,
384  std::string &ssoSvcUrl );
393  static int getAuthorizationURLFromRootServices( const std::string& responseString,
394  std::string&accessTokenUrl,
395  std::string& requestTokenUrl,
396  std::string& userAuthorizaitonUrl,
397  std::string &consumerKeyUrl);
399 private:
400 
401 };
403 #include <Lis0lisfmwrk/libLis0lisfmwrk_undef.h>
404 #endif