Commit bf9919f6 authored by Keliang's avatar Keliang

clang-format with code style

parent 9fab36a0

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AMF3GPPAccessRegistrationDocumentApi.h
*
......@@ -18,12 +19,10 @@
#ifndef AMF3GPPAccessRegistrationDocumentApi_H_
#define AMF3GPPAccessRegistrationDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "Amf3GppAccessRegistration.h"
#include "PatchItem.h"
......@@ -39,62 +38,79 @@ namespace api {
using namespace org::openapitools::server::model;
class AMF3GPPAccessRegistrationDocumentApi {
class AMF3GPPAccessRegistrationDocumentApi {
public:
AMF3GPPAccessRegistrationDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AMF3GPPAccessRegistrationDocumentApi() {}
void init();
AMF3GPPAccessRegistrationDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AMF3GPPAccessRegistrationDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void amf_context3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void create_amf_context3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_amf_context3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void amf3_gpp_access_registration_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To modify the AMF context data of a UE using 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the target NF (optional, default to &quot;&quot;)</param>
virtual void amf_context3gpp(const std::string &ueId, const std::vector<PatchItem> &patchItem, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// To store the AMF context data of a UE using 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="amf3GppAccessRegistration"> (optional)</param>
virtual void create_amf_context3gpp(const std::string &ueId, Amf3GppAccessRegistration &amf3GppAccessRegistration, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the AMF context data of a UE using 3gpp access
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="fields">attributes to be retrieved (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_amf_context3gpp(const std::string &ueId, const Pistache::Optional<std::vector<std::string>> &fields, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void amf_context3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void create_amf_context3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void query_amf_context3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void amf3_gpp_access_registration_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To modify the AMF context data of a UE using 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the
/// target NF (optional, default to &quot;&quot;)</param>
virtual void
amf_context3gpp(const std::string &ueId,
const std::vector<PatchItem> &patchItem,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// To store the AMF context data of a UE using 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="amf3GppAccessRegistration"> (optional)</param>
virtual void
create_amf_context3gpp(const std::string &ueId,
Amf3GppAccessRegistration &amf3GppAccessRegistration,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the AMF context data of a UE using 3gpp access
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="fields">attributes to be retrieved (optional, default to
/// std::vector&lt;std::string&gt;())</param> <param
/// name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void query_amf_context3gpp(
const std::string &ueId,
const Pistache::Optional<std::vector<std::string>> &fields,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AMF3GPPAccessRegistrationDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AMFNon3GPPAccessRegistrationDocumentApi.h
*
*
*
*/
#ifndef AMFNon3GPPAccessRegistrationDocumentApi_H_
#define AMFNon3GPPAccessRegistrationDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "Amf3GppAccessRegistration.h"
#include "AmfNon3GppAccessRegistration.h"
......@@ -40,62 +39,82 @@ namespace api {
using namespace org::openapitools::server::model;
class AMFNon3GPPAccessRegistrationDocumentApi {
class AMFNon3GPPAccessRegistrationDocumentApi {
public:
AMFNon3GPPAccessRegistrationDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AMFNon3GPPAccessRegistrationDocumentApi() {}
void init();
AMFNon3GPPAccessRegistrationDocumentApi(
std::shared_ptr<Pistache::Rest::Router>);
virtual ~AMFNon3GPPAccessRegistrationDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void amf_context_non3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void create_amf_context_non3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_amf_context_non3gpp_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void amf_non3_gpp_access_registration_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To modify the AMF context data of a UE using non 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the target NF (optional, default to &quot;&quot;)</param>
virtual void amf_context_non3gpp(const std::string &ueId, const std::vector<PatchItem> &patchItem, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// To store the AMF context data of a UE using non-3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="amfNon3GppAccessRegistration"> (optional)</param>
virtual void create_amf_context_non3gpp(const std::string &ueId, const AmfNon3GppAccessRegistration &amfNon3GppAccessRegistration, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the AMF context data of a UE using non-3gpp access
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="fields">attributes to be retrieved (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_amf_context_non3gpp(const std::string &ueId, const Pistache::Optional<std::vector<std::string>> &fields, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void amf_context_non3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
create_amf_context_non3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
query_amf_context_non3gpp_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void amf_non3_gpp_access_registration_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To modify the AMF context data of a UE using non 3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the
/// target NF (optional, default to &quot;&quot;)</param>
virtual void
amf_context_non3gpp(const std::string &ueId,
const std::vector<PatchItem> &patchItem,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// To store the AMF context data of a UE using non-3gpp access in the UDR
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="amfNon3GppAccessRegistration"> (optional)</param>
virtual void create_amf_context_non3gpp(
const std::string &ueId,
const AmfNon3GppAccessRegistration &amfNon3GppAccessRegistration,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the AMF context data of a UE using non-3gpp access
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="fields">attributes to be retrieved (optional, default to
/// std::vector&lt;std::string&gt;())</param> <param
/// name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void query_amf_context_non3gpp(
const std::string &ueId,
const Pistache::Optional<std::vector<std::string>> &fields,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AMFNon3GPPAccessRegistrationDocumentApi_H_ */
This diff is collapsed.
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AccessAndMobilityDataApi.h
*
*
*
*/
#ifndef AccessAndMobilityDataApi_H_
#define AccessAndMobilityDataApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "AccessAndMobilityData.h"
#include "ProblemDetails.h"
......@@ -36,70 +35,89 @@ namespace api {
using namespace org::openapitools::server::model;
class AccessAndMobilityDataApi {
class AccessAndMobilityDataApi {
public:
AccessAndMobilityDataApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilityDataApi() {}
void init();
AccessAndMobilityDataApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilityDataApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void create_or_replace_access_and_mobility_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void delete_access_and_mobility_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_access_and_mobility_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void update_access_and_mobility_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void access_and_mobility_data_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Creates and updates the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="accessAndMobilityData"></param>
virtual void create_or_replace_access_and_mobility_data(const std::string &ueId, const AccessAndMobilityData &accessAndMobilityData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Deletes the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
virtual void delete_access_and_mobility_data(const std::string &ueId, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="suppFeat">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_access_and_mobility_data(const std::string &ueId, const Pistache::Optional<std::string> &suppFeat, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Updates the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="accessAndMobilityData"></param>
virtual void update_access_and_mobility_data(const std::string &ueId, const AccessAndMobilityData &accessAndMobilityData, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void create_or_replace_access_and_mobility_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void delete_access_and_mobility_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void query_access_and_mobility_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void update_access_and_mobility_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void access_and_mobility_data_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Creates and updates the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="accessAndMobilityData"></param>
virtual void create_or_replace_access_and_mobility_data(
const std::string &ueId,
const AccessAndMobilityData &accessAndMobilityData,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Deletes the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
virtual void
delete_access_and_mobility_data(const std::string &ueId,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="suppFeat">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void query_access_and_mobility_data(
const std::string &ueId, const Pistache::Optional<std::string> &suppFeat,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Updates the access and mobility exposure data for a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="accessAndMobilityData"></param>
virtual void update_access_and_mobility_data(
const std::string &ueId,
const AccessAndMobilityData &accessAndMobilityData,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AccessAndMobilityDataApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AccessAndMobilityPolicyDataDocumentApi.h"
#include "Helpers.h"
......@@ -21,50 +22,60 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AccessAndMobilityPolicyDataDocumentApi::AccessAndMobilityPolicyDataDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AccessAndMobilityPolicyDataDocumentApi::AccessAndMobilityPolicyDataDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AccessAndMobilityPolicyDataDocumentApi::init() {
setupRoutes();
}
void AccessAndMobilityPolicyDataDocumentApi::init() { setupRoutes(); }
void AccessAndMobilityPolicyDataDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Get(*router, base + "/policy-data/ues/:ueId/am-data", Routes::bind(&AccessAndMobilityPolicyDataDocumentApi::read_access_and_mobility_policy_data_handler, this));
Routes::Get(*router, base + "/policy-data/ues/:ueId/am-data",
Routes::bind(&AccessAndMobilityPolicyDataDocumentApi::
read_access_and_mobility_policy_data_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AccessAndMobilityPolicyDataDocumentApi::access_and_mobility_policy_data_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&AccessAndMobilityPolicyDataDocumentApi::
access_and_mobility_policy_data_document_api_default_handler,
this));
}
void AccessAndMobilityPolicyDataDocumentApi::read_access_and_mobility_policy_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
try {
this->read_access_and_mobility_policy_data(ueId, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void AccessAndMobilityPolicyDataDocumentApi::
read_access_and_mobility_policy_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
void AccessAndMobilityPolicyDataDocumentApi::access_and_mobility_policy_data_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
try {
this->read_access_and_mobility_policy_data(ueId, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
}
void AccessAndMobilityPolicyDataDocumentApi::
access_and_mobility_policy_data_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AccessAndMobilityPolicyDataDocumentApi.h
*
*
*
*/
#ifndef AccessAndMobilityPolicyDataDocumentApi_H_
#define AccessAndMobilityPolicyDataDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "AmPolicyData.h"
#include "ProblemDetails.h"
......@@ -36,37 +35,41 @@ namespace api {
using namespace org::openapitools::server::model;
class AccessAndMobilityPolicyDataDocumentApi {
class AccessAndMobilityPolicyDataDocumentApi {
public:
AccessAndMobilityPolicyDataDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilityPolicyDataDocumentApi() {}
void init();
AccessAndMobilityPolicyDataDocumentApi(
std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilityPolicyDataDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void read_access_and_mobility_policy_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void access_and_mobility_policy_data_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the access and mobility policy data for a subscriber
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId"></param>
virtual void read_access_and_mobility_policy_data(const std::string &ueId, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void read_access_and_mobility_policy_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void access_and_mobility_policy_data_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the access and mobility policy data for a subscriber
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId"></param>
virtual void read_access_and_mobility_policy_data(
const std::string &ueId, Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AccessAndMobilityPolicyDataDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AccessAndMobilitySubscriptionDataDocumentApi.h"
#include "Helpers.h"
......@@ -21,75 +22,88 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AccessAndMobilitySubscriptionDataDocumentApi::AccessAndMobilitySubscriptionDataDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AccessAndMobilitySubscriptionDataDocumentApi::
AccessAndMobilitySubscriptionDataDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AccessAndMobilitySubscriptionDataDocumentApi::init() {
setupRoutes();
}
void AccessAndMobilitySubscriptionDataDocumentApi::init() { setupRoutes(); }
void AccessAndMobilitySubscriptionDataDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Get(*router, base + "/subscription-data/:ueId/:servingPlmnId/provisioned-data/am-data", Routes::bind(&AccessAndMobilitySubscriptionDataDocumentApi::query_am_data_handler, this));
Routes::Get(
*router,
base + "/subscription-data/:ueId/:servingPlmnId/provisioned-data/am-data",
Routes::bind(
&AccessAndMobilitySubscriptionDataDocumentApi::query_am_data_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AccessAndMobilitySubscriptionDataDocumentApi::access_and_mobility_subscription_data_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&AccessAndMobilitySubscriptionDataDocumentApi::
access_and_mobility_subscription_data_document_api_default_handler,
this));
}
void AccessAndMobilitySubscriptionDataDocumentApi::query_am_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
auto servingPlmnId = request.param(":servingPlmnId").as<std::string>();
void AccessAndMobilitySubscriptionDataDocumentApi::query_am_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
auto servingPlmnId = request.param(":servingPlmnId").as<std::string>();
//std::cout<<"********* servingPlmnId ********* "<<servingPlmnId<<std::endl;
// Getting the query params
auto fieldsQuery = request.query().get("fields");
Pistache::Optional<std::vector<std::string>> fields;
if(!fieldsQuery.isEmpty()){
std::vector<std::string> valueQuery_instance;
if(fromStringValue(fieldsQuery.get(), valueQuery_instance)){
fields = Pistache::Some(valueQuery_instance);
}
}
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
// Getting the header params
auto ifNoneMatch = request.headers().tryGetRaw("If-None-Match");
auto ifModifiedSince = request.headers().tryGetRaw("If-Modified-Since");
// std::cout<<"********* servingPlmnId ********* "<<servingPlmnId<<std::endl;
try {
this->query_am_data(ueId, servingPlmnId, fields, supportedFeatures, ifNoneMatch, ifModifiedSince, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
// Getting the query params
auto fieldsQuery = request.query().get("fields");
Pistache::Optional<std::vector<std::string>> fields;
if (!fieldsQuery.isEmpty()) {
std::vector<std::string> valueQuery_instance;
if (fromStringValue(fieldsQuery.get(), valueQuery_instance)) {
fields = Pistache::Some(valueQuery_instance);
}
}
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
}
// Getting the header params
auto ifNoneMatch = request.headers().tryGetRaw("If-None-Match");
auto ifModifiedSince = request.headers().tryGetRaw("If-Modified-Since");
void AccessAndMobilitySubscriptionDataDocumentApi::access_and_mobility_subscription_data_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
try {
this->query_am_data(ueId, servingPlmnId, fields, supportedFeatures,
ifNoneMatch, ifModifiedSince, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
}
void AccessAndMobilitySubscriptionDataDocumentApi::
access_and_mobility_subscription_data_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AccessAndMobilitySubscriptionDataDocumentApi.h
*
*
*
*/
#ifndef AccessAndMobilitySubscriptionDataDocumentApi_H_
#define AccessAndMobilitySubscriptionDataDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "AccessAndMobilitySubscriptionData.h"
#include <string>
......@@ -35,42 +34,54 @@ namespace api {
using namespace org::openapitools::server::model;
class AccessAndMobilitySubscriptionDataDocumentApi {
class AccessAndMobilitySubscriptionDataDocumentApi {
public:
AccessAndMobilitySubscriptionDataDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilitySubscriptionDataDocumentApi() {}
void init();
AccessAndMobilitySubscriptionDataDocumentApi(
std::shared_ptr<Pistache::Rest::Router>);
virtual ~AccessAndMobilitySubscriptionDataDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void query_am_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void access_and_mobility_subscription_data_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the access and mobility subscription data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="servingPlmnId">PLMN ID</param>
/// <param name="fields">attributes to be retrieved (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
/// <param name="ifNoneMatch">Validator for conditional requests, as described in RFC 7232, 3.2 (optional, default to &quot;&quot;)</param>
/// <param name="ifModifiedSince">Validator for conditional requests, as described in RFC 7232, 3.3 (optional, default to &quot;&quot;)</param>
virtual void query_am_data(const std::string &ueId, const std::string &servingPlmnId, const Pistache::Optional<std::vector<std::string>> &fields, const Pistache::Optional<std::string> &supportedFeatures, const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void query_am_data_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void access_and_mobility_subscription_data_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the access and mobility subscription data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="servingPlmnId">PLMN ID</param>
/// <param name="fields">attributes to be retrieved (optional, default to
/// std::vector&lt;std::string&gt;())</param> <param
/// name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param> <param name="ifNoneMatch">Validator for conditional
/// requests, as described in RFC 7232, 3.2 (optional, default to
/// &quot;&quot;)</param> <param name="ifModifiedSince">Validator for
/// conditional requests, as described in RFC 7232, 3.3 (optional, default to
/// &quot;&quot;)</param>
virtual void query_am_data(
const std::string &ueId, const std::string &servingPlmnId,
const Pistache::Optional<std::vector<std::string>> &fields,
const Pistache::Optional<std::string> &supportedFeatures,
const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch,
const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AccessAndMobilitySubscriptionDataDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AmfSubscriptionInfoDocumentApi.h"
#include "Helpers.h"
......@@ -21,65 +22,78 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AmfSubscriptionInfoDocumentApi::AmfSubscriptionInfoDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AmfSubscriptionInfoDocumentApi::AmfSubscriptionInfoDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AmfSubscriptionInfoDocumentApi::init() {
setupRoutes();
}
void AmfSubscriptionInfoDocumentApi::init() { setupRoutes(); }
void AmfSubscriptionInfoDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Patch(*router, base + "/subscription-data/:ueId/context-data/ee-subscriptions/:subsId/amf-subscriptions", Routes::bind(&AmfSubscriptionInfoDocumentApi::modify_amf_subscription_info_handler, this));
Routes::Patch(
*router,
base + "/subscription-data/:ueId/context-data/ee-subscriptions/:subsId/"
"amf-subscriptions",
Routes::bind(
&AmfSubscriptionInfoDocumentApi::modify_amf_subscription_info_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AmfSubscriptionInfoDocumentApi::amf_subscription_info_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(&AmfSubscriptionInfoDocumentApi::
amf_subscription_info_document_api_default_handler,
this));
}
void AmfSubscriptionInfoDocumentApi::modify_amf_subscription_info_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
auto subsId = request.param(":subsId").as<std::string>();
// Getting the body param
std::vector<PatchItem> patchItem;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(patchItem);
this->modify_amf_subscription_info(ueId, subsId, patchItem, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void AmfSubscriptionInfoDocumentApi::modify_amf_subscription_info_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
auto subsId = request.param(":subsId").as<std::string>();
}
// Getting the body param
std::vector<PatchItem> patchItem;
void AmfSubscriptionInfoDocumentApi::amf_subscription_info_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(patchItem);
this->modify_amf_subscription_info(ueId, subsId, patchItem,
supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
void AmfSubscriptionInfoDocumentApi::
amf_subscription_info_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AmfSubscriptionInfoDocumentApi.h
*
*
*
*/
#ifndef _AmfSubscriptionInfoDocumentApi_H_
#define _AmfSubscriptionInfoDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "PatchItem.h"
#include "PatchResult.h"
......@@ -38,40 +37,47 @@ namespace api {
using namespace org::openapitools::server::model;
class AmfSubscriptionInfoDocumentApi {
class AmfSubscriptionInfoDocumentApi {
public:
AmfSubscriptionInfoDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AmfSubscriptionInfoDocumentApi() {}
void init();
AmfSubscriptionInfoDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AmfSubscriptionInfoDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void modify_amf_subscription_info_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void amf_subscription_info_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// modify the AMF Subscription Info
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId"></param>
/// <param name="subsId"></param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the target NF (optional, default to &quot;&quot;)</param>
virtual void modify_amf_subscription_info(const std::string &ueId, const std::string &subsId, const std::vector<PatchItem> &patchItem, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void
modify_amf_subscription_info_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void amf_subscription_info_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// modify the AMF Subscription Info
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId"></param>
/// <param name="subsId"></param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the
/// target NF (optional, default to &quot;&quot;)</param>
virtual void modify_amf_subscription_info(
const std::string &ueId, const std::string &subsId,
const std::vector<PatchItem> &patchItem,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AmfSubscriptionInfoDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "ApplicationDataSubscriptionsCollectionApi.h"
#include "Helpers.h"
......@@ -21,82 +22,101 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
ApplicationDataSubscriptionsCollectionApi::ApplicationDataSubscriptionsCollectionApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
ApplicationDataSubscriptionsCollectionApi::
ApplicationDataSubscriptionsCollectionApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void ApplicationDataSubscriptionsCollectionApi::init() {
setupRoutes();
}
void ApplicationDataSubscriptionsCollectionApi::init() { setupRoutes(); }
void ApplicationDataSubscriptionsCollectionApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Post(*router, base + "/application-data/subs-to-notify", Routes::bind(&ApplicationDataSubscriptionsCollectionApi::create_individual_application_data_subscription_handler, this));
Routes::Get(*router, base + "/application-data/subs-to-notify", Routes::bind(&ApplicationDataSubscriptionsCollectionApi::read_application_data_change_subscriptions_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&ApplicationDataSubscriptionsCollectionApi::application_data_subscriptions_collection_api_default_handler, this));
}
void ApplicationDataSubscriptionsCollectionApi::create_individual_application_data_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the body param
ApplicationDataSubs applicationDataSubs;
try {
nlohmann::json::parse(request.body()).get_to(applicationDataSubs);
this->create_individual_application_data_subscription(applicationDataSubs, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
using namespace Pistache::Rest;
Routes::Post(
*router, base + "/application-data/subs-to-notify",
Routes::bind(&ApplicationDataSubscriptionsCollectionApi::
create_individual_application_data_subscription_handler,
this));
Routes::Get(
*router, base + "/application-data/subs-to-notify",
Routes::bind(&ApplicationDataSubscriptionsCollectionApi::
read_application_data_change_subscriptions_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&ApplicationDataSubscriptionsCollectionApi::
application_data_subscriptions_collection_api_default_handler,
this));
}
void ApplicationDataSubscriptionsCollectionApi::read_application_data_change_subscriptions_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the query params
auto dataFilterQuery = request.query().get("data-filter");
Pistache::Optional<DataFilter> dataFilter;
if(!dataFilterQuery.isEmpty()){
// DataFilter valueQuery_instance;
// if(fromStringValue(dataFilterQuery.get(), valueQuery_instance)){
// dataFilter = Pistache::Some(valueQuery_instance);
// }
}
try {
this->read_application_data_change_subscriptions(dataFilter, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void ApplicationDataSubscriptionsCollectionApi::
create_individual_application_data_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the body param
ApplicationDataSubs applicationDataSubs;
try {
nlohmann::json::parse(request.body()).get_to(applicationDataSubs);
this->create_individual_application_data_subscription(applicationDataSubs,
response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void ApplicationDataSubscriptionsCollectionApi::application_data_subscriptions_collection_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
void ApplicationDataSubscriptionsCollectionApi::
read_application_data_change_subscriptions_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the query params
auto dataFilterQuery = request.query().get("data-filter");
Pistache::Optional<DataFilter> dataFilter;
if (!dataFilterQuery.isEmpty()) {
// DataFilter valueQuery_instance;
// if(fromStringValue(dataFilterQuery.get(), valueQuery_instance)){
// dataFilter = Pistache::Some(valueQuery_instance);
// }
}
try {
this->read_application_data_change_subscriptions(dataFilter, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
}
void ApplicationDataSubscriptionsCollectionApi::
application_data_subscriptions_collection_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* ApplicationDataSubscriptionsCollectionApi.h
*
*
*
*/
#ifndef ApplicationDataSubscriptionsCollectionApi_H_
#define ApplicationDataSubscriptionsCollectionApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "ApplicationDataSubs.h"
#include "DataFilter.h"
......@@ -36,47 +35,57 @@ namespace api {
using namespace org::openapitools::server::model;
class ApplicationDataSubscriptionsCollectionApi {
class ApplicationDataSubscriptionsCollectionApi {
public:
ApplicationDataSubscriptionsCollectionApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~ApplicationDataSubscriptionsCollectionApi() {}
void init();
ApplicationDataSubscriptionsCollectionApi(
std::shared_ptr<Pistache::Rest::Router>);
virtual ~ApplicationDataSubscriptionsCollectionApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void create_individual_application_data_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void read_application_data_change_subscriptions_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void application_data_subscriptions_collection_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Create a subscription to receive notification of application data changes
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="applicationDataSubs"></param>
virtual void create_individual_application_data_subscription(const ApplicationDataSubs &applicationDataSubs, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Read Application Data change Subscriptions
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="dataFilter">The data filter for the query. (optional, default to DataFilter())</param>
virtual void read_application_data_change_subscriptions(const Pistache::Optional<DataFilter> &dataFilter, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void create_individual_application_data_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void read_application_data_change_subscriptions_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void application_data_subscriptions_collection_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Create a subscription to receive notification of application data changes
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="applicationDataSubs"></param>
virtual void create_individual_application_data_subscription(
const ApplicationDataSubs &applicationDataSubs,
Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Read Application Data change Subscriptions
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="dataFilter">The data filter for the query. (optional, default
/// to DataFilter())</param>
virtual void read_application_data_change_subscriptions(
const Pistache::Optional<DataFilter> &dataFilter,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* ApplicationDataSubscriptionsCollectionApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AuthenticationSoRDocumentApi.h"
#include "Helpers.h"
......@@ -21,96 +22,113 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AuthenticationSoRDocumentApi::AuthenticationSoRDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AuthenticationSoRDocumentApi::AuthenticationSoRDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AuthenticationSoRDocumentApi::init() {
setupRoutes();
}
void AuthenticationSoRDocumentApi::init() { setupRoutes(); }
void AuthenticationSoRDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Put(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/sor-data", Routes::bind(&AuthenticationSoRDocumentApi::create_authentication_so_r_handler, this));
Routes::Get(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/sor-data", Routes::bind(&AuthenticationSoRDocumentApi::query_auth_so_r_handler, this));
Routes::Put(
*router,
base + "/subscription-data/:ueId/ue-update-confirmation-data/sor-data",
Routes::bind(
&AuthenticationSoRDocumentApi::create_authentication_so_r_handler,
this));
Routes::Get(
*router,
base + "/subscription-data/:ueId/ue-update-confirmation-data/sor-data",
Routes::bind(&AuthenticationSoRDocumentApi::query_auth_so_r_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AuthenticationSoRDocumentApi::authentication_so_r_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(&AuthenticationSoRDocumentApi::
authentication_so_r_document_api_default_handler,
this));
}
void AuthenticationSoRDocumentApi::create_authentication_so_r_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the body param
SorData sorData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(sorData);
this->create_authentication_so_r(ueId, supportedFeatures, sorData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void AuthenticationSoRDocumentApi::create_authentication_so_r_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
}
void AuthenticationSoRDocumentApi::query_auth_so_r_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supportedFeatures");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->query_auth_so_r(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
// Getting the body param
SorData sorData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(sorData);
this->create_authentication_so_r(ueId, supportedFeatures, sorData,
response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void AuthenticationSoRDocumentApi::query_auth_so_r_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
void AuthenticationSoRDocumentApi::authentication_so_r_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supportedFeatures");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->query_auth_so_r(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
void AuthenticationSoRDocumentApi::
authentication_so_r_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AuthenticationSoRDocumentApi.h
*
*
*
*/
#ifndef AuthenticationSoRDocumentApi_H_
#define AuthenticationSoRDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "SorData.h"
#include <string>
......@@ -35,50 +34,60 @@ namespace api {
using namespace org::openapitools::server::model;
class AuthenticationSoRDocumentApi {
class AuthenticationSoRDocumentApi {
public:
AuthenticationSoRDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationSoRDocumentApi() {}
void init();
AuthenticationSoRDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationSoRDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void create_authentication_so_r_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_auth_so_r_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void authentication_so_r_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the SoR acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
/// <param name="sorData"> (optional)</param>
virtual void create_authentication_so_r(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, const SorData &sorData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the SoR acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_auth_so_r(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void
create_authentication_so_r_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void query_auth_so_r_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void authentication_so_r_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the SoR acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param> <param name="sorData"> (optional)</param>
virtual void create_authentication_so_r(
const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
const SorData &sorData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the SoR acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void
query_auth_so_r(const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AuthenticationSoRDocumentApi_H_ */
This diff is collapsed.
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AuthenticationStatusDocumentApi.h
*
......@@ -18,12 +19,10 @@
#ifndef AuthenticationStatusDocumentApi_H_
#define AuthenticationStatusDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "AuthEvent.h"
#include <string>
......@@ -35,44 +34,59 @@ namespace api {
using namespace org::openapitools::server::model;
class AuthenticationStatusDocumentApi {
class AuthenticationStatusDocumentApi {
public:
AuthenticationStatusDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationStatusDocumentApi() {}
void init();
AuthenticationStatusDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationStatusDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void create_authentication_status_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void delete_authentication_status_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_authentication_status_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void authentication_status_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the Authentication Status data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="authEvent"> (optional)</param>
virtual void create_authentication_status(const std::string &ueId, const AuthEvent &authEvent, Pistache::Http::ResponseWriter &response) = 0;
virtual void delete_authentication_status(const std::string &ueId, Pistache::Http::ResponseWriter &response) = 0;
virtual void query_authentication_status(const std::string &ueId, const Pistache::Optional<std::vector<std::string>> &fields, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void
create_authentication_status_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
delete_authentication_status_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
query_authentication_status_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void authentication_status_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the Authentication Status data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="authEvent"> (optional)</param>
virtual void
create_authentication_status(const std::string &ueId,
const AuthEvent &authEvent,
Pistache::Http::ResponseWriter &response) = 0;
virtual void
delete_authentication_status(const std::string &ueId,
Pistache::Http::ResponseWriter &response) = 0;
virtual void query_authentication_status(
const std::string &ueId,
const Pistache::Optional<std::vector<std::string>> &fields,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AuthenticationStatusDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AuthenticationSubscriptionDocumentApi.h"
#include "Helpers.h"
......@@ -21,104 +22,124 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AuthenticationSubscriptionDocumentApi::AuthenticationSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AuthenticationSubscriptionDocumentApi::AuthenticationSubscriptionDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AuthenticationSubscriptionDocumentApi::init() {
setupRoutes();
}
void AuthenticationSubscriptionDocumentApi::init() { setupRoutes(); }
void AuthenticationSubscriptionDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
Routes::Get(*router, base + "/subscription-data/:ueId/authentication-data/authentication-subscription", Routes::bind(&AuthenticationSubscriptionDocumentApi::read_authentication_subscription_handler, this));
Routes::Patch(*router, base + "/subscription-data/:ueId/authentication-data/authentication-subscription", Routes::bind(&AuthenticationSubscriptionDocumentApi::modify_authentication_subscription_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AuthenticationSubscriptionDocumentApi::authentication_subscription_document_api_default_handler, this));
using namespace Pistache::Rest;
Routes::Get(*router,
base + "/subscription-data/:ueId/authentication-data/"
"authentication-subscription",
Routes::bind(&AuthenticationSubscriptionDocumentApi::
read_authentication_subscription_handler,
this));
Routes::Patch(*router,
base + "/subscription-data/:ueId/authentication-data/"
"authentication-subscription",
Routes::bind(&AuthenticationSubscriptionDocumentApi::
modify_authentication_subscription_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(&AuthenticationSubscriptionDocumentApi::
authentication_subscription_document_api_default_handler,
this));
}
void AuthenticationSubscriptionDocumentApi::modify_authentication_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
std::cout<<"***** ueId ("<<ueId<<")******"<<std::endl;
std::cout<<"***** request.body() ("<<request.body()<<")******"<<std::endl;
// Getting the body param
std::vector<PatchItem> patchItem;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(patchItem);
this->modify_authentication_subscription(ueId, patchItem, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
void AuthenticationSubscriptionDocumentApi::
modify_authentication_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
std::cout << "***** ueId (" << ueId << ")******" << std::endl;
std::cout << "***** request.body() (" << request.body() << ")******"
<< std::endl;
// Getting the body param
std::vector<PatchItem> patchItem;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(patchItem);
this->modify_authentication_subscription(ueId, patchItem, supportedFeatures,
response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void AuthenticationSubscriptionDocumentApi::read_authentication_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response)
{
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// std::cout<<"***** ueId ("<<ueId<<")******"<<std::endl;
//
// std::cout<<"***** request.body() ("<<request.body()<<")******"<<std::endl;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->read_authentication_subscription(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
void AuthenticationSubscriptionDocumentApi::
read_authentication_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// std::cout<<"***** ueId ("<<ueId<<")******"<<std::endl;
//
// std::cout<<"***** request.body()
//("<<request.body()<<")******"<<std::endl;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->read_authentication_subscription(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void AuthenticationSubscriptionDocumentApi::authentication_subscription_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
}
}
}
void AuthenticationSubscriptionDocumentApi::
authentication_subscription_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AuthenticationSubscriptionDocumentApi.h
*
*
*
*/
#ifndef AuthenticationSubscriptionDocumentApi_H_
#define AuthenticationSubscriptionDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "PatchItem.h"
#include "PatchResult.h"
......@@ -38,41 +37,53 @@ namespace api {
using namespace org::openapitools::server::model;
class AuthenticationSubscriptionDocumentApi {
class AuthenticationSubscriptionDocumentApi {
public:
AuthenticationSubscriptionDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationSubscriptionDocumentApi() {}
void init();
AuthenticationSubscriptionDocumentApi(
std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationSubscriptionDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void modify_authentication_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void read_authentication_subscription_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void authentication_subscription_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// modify the authentication subscription data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the target NF (optional, default to &quot;&quot;)</param>
virtual void modify_authentication_subscription(const std::string &ueId, const std::vector<PatchItem> &patchItem, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
virtual void read_authentication_subscription(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void modify_authentication_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void read_authentication_subscription_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void authentication_subscription_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// modify the authentication subscription data of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="patchItem"></param>
/// <param name="supportedFeatures">Features required to be supported by the
/// target NF (optional, default to &quot;&quot;)</param>
virtual void modify_authentication_subscription(
const std::string &ueId, const std::vector<PatchItem> &patchItem,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
virtual void read_authentication_subscription(
const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AuthenticationSubscriptionDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "AuthenticationUPUDocumentApi.h"
#include "Helpers.h"
......@@ -21,96 +22,112 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
AuthenticationUPUDocumentApi::AuthenticationUPUDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
AuthenticationUPUDocumentApi::AuthenticationUPUDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void AuthenticationUPUDocumentApi::init() {
setupRoutes();
}
void AuthenticationUPUDocumentApi::init() { setupRoutes(); }
void AuthenticationUPUDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Put(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/upu-data", Routes::bind(&AuthenticationUPUDocumentApi::create_authentication_upu_handler, this));
Routes::Get(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/upu-data", Routes::bind(&AuthenticationUPUDocumentApi::query_auth_upu_handler, this));
Routes::Put(
*router,
base + "/subscription-data/:ueId/ue-update-confirmation-data/upu-data",
Routes::bind(
&AuthenticationUPUDocumentApi::create_authentication_upu_handler,
this));
Routes::Get(
*router,
base + "/subscription-data/:ueId/ue-update-confirmation-data/upu-data",
Routes::bind(&AuthenticationUPUDocumentApi::query_auth_upu_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&AuthenticationUPUDocumentApi::authentication_upu_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(&AuthenticationUPUDocumentApi::
authentication_upu_document_api_default_handler,
this));
}
void AuthenticationUPUDocumentApi::create_authentication_upu_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the body param
UpuData upuData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(upuData);
this->create_authentication_upu(ueId, supportedFeatures, upuData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void AuthenticationUPUDocumentApi::create_authentication_upu_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
}
void AuthenticationUPUDocumentApi::query_auth_upu_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supportedFeatures");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->query_auth_upu(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
// Getting the body param
UpuData upuData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(upuData);
this->create_authentication_upu(ueId, supportedFeatures, upuData, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void AuthenticationUPUDocumentApi::query_auth_upu_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
void AuthenticationUPUDocumentApi::authentication_upu_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supportedFeatures");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->query_auth_upu(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
void AuthenticationUPUDocumentApi::
authentication_upu_document_api_default_handler(
const Pistache::Rest::Request &,
Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* AuthenticationUPUDocumentApi.h
*
*
*
*/
#ifndef AuthenticationUPUDocumentApi_H_
#define AuthenticationUPUDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "UpuData.h"
#include <string>
......@@ -35,50 +34,60 @@ namespace api {
using namespace org::openapitools::server::model;
class AuthenticationUPUDocumentApi {
class AuthenticationUPUDocumentApi {
public:
AuthenticationUPUDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationUPUDocumentApi() {}
void init();
AuthenticationUPUDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~AuthenticationUPUDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void create_authentication_upu_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void query_auth_upu_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void authentication_upu_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the UPU acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
/// <param name="upuData"> (optional)</param>
virtual void create_authentication_upu(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, const UpuData &upuData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the UPU acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_auth_upu(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void
create_authentication_upu_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void query_auth_upu_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void authentication_upu_document_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// To store the UPU acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param> <param name="upuData"> (optional)</param>
virtual void create_authentication_upu(
const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
const UpuData &upuData, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Retrieves the UPU acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void
query_auth_upu(const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* AuthenticationUPUDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "BdtDataStoreApi.h"
#include "Helpers.h"
......@@ -21,66 +22,68 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
BdtDataStoreApi::BdtDataStoreApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
BdtDataStoreApi::BdtDataStoreApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void BdtDataStoreApi::init() {
setupRoutes();
}
void BdtDataStoreApi::init() { setupRoutes(); }
void BdtDataStoreApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Get(*router, base + "/policy-data/bdt-data", Routes::bind(&BdtDataStoreApi::read_bdt_data_handler, this));
Routes::Get(*router, base + "/policy-data/bdt-data",
Routes::bind(&BdtDataStoreApi::read_bdt_data_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&BdtDataStoreApi::bdt_data_store_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(
Routes::bind(&BdtDataStoreApi::bdt_data_store_api_default_handler, this));
}
void BdtDataStoreApi::read_bdt_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void BdtDataStoreApi::read_bdt_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the query params
auto bdtRefIdsQuery = request.query().get("bdt-ref-ids");
Pistache::Optional<std::vector<std::string>> bdtRefIds;
if(!bdtRefIdsQuery.isEmpty()){
std::vector<std::string> valueQuery_instance;
if(fromStringValue(bdtRefIdsQuery.get(), valueQuery_instance)){
bdtRefIds = Pistache::Some(valueQuery_instance);
}
}
auto suppFeatQuery = request.query().get("supp-feat");
Pistache::Optional<std::string> suppFeat;
if(!suppFeatQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(suppFeatQuery.get(), valueQuery_instance)){
suppFeat = Pistache::Some(valueQuery_instance);
}
// Getting the query params
auto bdtRefIdsQuery = request.query().get("bdt-ref-ids");
Pistache::Optional<std::vector<std::string>> bdtRefIds;
if (!bdtRefIdsQuery.isEmpty()) {
std::vector<std::string> valueQuery_instance;
if (fromStringValue(bdtRefIdsQuery.get(), valueQuery_instance)) {
bdtRefIds = Pistache::Some(valueQuery_instance);
}
try {
this->read_bdt_data(bdtRefIds, suppFeat, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
auto suppFeatQuery = request.query().get("supp-feat");
Pistache::Optional<std::string> suppFeat;
if (!suppFeatQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(suppFeatQuery.get(), valueQuery_instance)) {
suppFeat = Pistache::Some(valueQuery_instance);
}
}
try {
this->read_bdt_data(bdtRefIds, suppFeat, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void BdtDataStoreApi::bdt_data_store_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
}
}
}
void BdtDataStoreApi::bdt_data_store_api_default_handler(
const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* BdtDataStoreApi.h
*
*
*
*/
#ifndef BdtDataStoreApi_H_
#define BdtDataStoreApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "BdtData.h"
#include "ProblemDetails.h"
......@@ -36,38 +35,44 @@ namespace api {
using namespace org::openapitools::server::model;
class BdtDataStoreApi {
class BdtDataStoreApi {
public:
BdtDataStoreApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~BdtDataStoreApi() {}
void init();
BdtDataStoreApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~BdtDataStoreApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void read_bdt_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void bdt_data_store_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the BDT data collection
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="bdtRefIds">List of the BDT reference identifiers. (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="suppFeat">Supported Features (optional, default to &quot;&quot;)</param>
virtual void read_bdt_data(const Pistache::Optional<std::vector<std::string>> &bdtRefIds, const Pistache::Optional<std::string> &suppFeat, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void read_bdt_data_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
bdt_data_store_api_default_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the BDT data collection
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="bdtRefIds">List of the BDT reference identifiers. (optional,
/// default to std::vector&lt;std::string&gt;())</param> <param
/// name="suppFeat">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void
read_bdt_data(const Pistache::Optional<std::vector<std::string>> &bdtRefIds,
const Pistache::Optional<std::string> &suppFeat,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* BdtDataStoreApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "BdtPolicyDataStoreApi.h"
#include "Helpers.h"
......@@ -21,74 +22,78 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
BdtPolicyDataStoreApi::BdtPolicyDataStoreApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
BdtPolicyDataStoreApi::BdtPolicyDataStoreApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void BdtPolicyDataStoreApi::init() {
setupRoutes();
}
void BdtPolicyDataStoreApi::init() { setupRoutes(); }
void BdtPolicyDataStoreApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Get(*router, base + "/application-data/bdtPolicyData", Routes::bind(&BdtPolicyDataStoreApi::read_bdt_policy_data_handler, this));
Routes::Get(
*router, base + "/application-data/bdtPolicyData",
Routes::bind(&BdtPolicyDataStoreApi::read_bdt_policy_data_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&BdtPolicyDataStoreApi::bdt_policy_data_store_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&BdtPolicyDataStoreApi::bdt_policy_data_store_api_default_handler, this));
}
void BdtPolicyDataStoreApi::read_bdt_policy_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
void BdtPolicyDataStoreApi::read_bdt_policy_data_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the query params
auto bdtPolicyIdsQuery = request.query().get("bdt-policy-ids");
Pistache::Optional<std::vector<std::string>> bdtPolicyIds;
if(!bdtPolicyIdsQuery.isEmpty()){
std::vector<std::string> valueQuery_instance;
if(fromStringValue(bdtPolicyIdsQuery.get(), valueQuery_instance)){
bdtPolicyIds = Pistache::Some(valueQuery_instance);
}
}
auto internalGroupIdsQuery = request.query().get("internal-group-ids");
Pistache::Optional<std::vector<std::string>> internalGroupIds;
if(!internalGroupIdsQuery.isEmpty()){
std::vector<std::string> valueQuery_instance;
if(fromStringValue(internalGroupIdsQuery.get(), valueQuery_instance)){
internalGroupIds = Pistache::Some(valueQuery_instance);
}
// Getting the query params
auto bdtPolicyIdsQuery = request.query().get("bdt-policy-ids");
Pistache::Optional<std::vector<std::string>> bdtPolicyIds;
if (!bdtPolicyIdsQuery.isEmpty()) {
std::vector<std::string> valueQuery_instance;
if (fromStringValue(bdtPolicyIdsQuery.get(), valueQuery_instance)) {
bdtPolicyIds = Pistache::Some(valueQuery_instance);
}
auto supisQuery = request.query().get("supis");
Pistache::Optional<std::vector<std::string>> supis;
if(!supisQuery.isEmpty()){
std::vector<std::string> valueQuery_instance;
if(fromStringValue(supisQuery.get(), valueQuery_instance)){
supis = Pistache::Some(valueQuery_instance);
}
}
auto internalGroupIdsQuery = request.query().get("internal-group-ids");
Pistache::Optional<std::vector<std::string>> internalGroupIds;
if (!internalGroupIdsQuery.isEmpty()) {
std::vector<std::string> valueQuery_instance;
if (fromStringValue(internalGroupIdsQuery.get(), valueQuery_instance)) {
internalGroupIds = Pistache::Some(valueQuery_instance);
}
try {
this->read_bdt_policy_data(bdtPolicyIds, internalGroupIds, supis, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
auto supisQuery = request.query().get("supis");
Pistache::Optional<std::vector<std::string>> supis;
if (!supisQuery.isEmpty()) {
std::vector<std::string> valueQuery_instance;
if (fromStringValue(supisQuery.get(), valueQuery_instance)) {
supis = Pistache::Some(valueQuery_instance);
}
}
try {
this->read_bdt_policy_data(bdtPolicyIds, internalGroupIds, supis, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
void BdtPolicyDataStoreApi::bdt_policy_data_store_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
}
}
}
void BdtPolicyDataStoreApi::bdt_policy_data_store_api_default_handler(
const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* BdtPolicyDataStoreApi.h
*
*
*
*/
#ifndef BdtPolicyDataStoreApi_H_
#define BdtPolicyDataStoreApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "BdtPolicyData.h"
#include "ProblemDetails.h"
......@@ -36,39 +35,47 @@ namespace api {
using namespace org::openapitools::server::model;
class BdtPolicyDataStoreApi {
class BdtPolicyDataStoreApi {
public:
BdtPolicyDataStoreApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~BdtPolicyDataStoreApi() {}
void init();
BdtPolicyDataStoreApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~BdtPolicyDataStoreApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void read_bdt_policy_data_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void bdt_policy_data_store_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieve applied BDT Policy Data
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="bdtPolicyIds">Each element identifies a service. (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="internalGroupIds">Each element identifies a group of users. (optional, default to std::vector&lt;std::string&gt;())</param>
/// <param name="supis">Each element identifies the user. (optional, default to std::vector&lt;std::string&gt;())</param>
virtual void read_bdt_policy_data(const Pistache::Optional<std::vector<std::string>> &bdtPolicyIds, const Pistache::Optional<std::vector<std::string>> &internalGroupIds, const Pistache::Optional<std::vector<std::string>> &supis, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void read_bdt_policy_data_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void bdt_policy_data_store_api_default_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieve applied BDT Policy Data
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="bdtPolicyIds">Each element identifies a service. (optional,
/// default to std::vector&lt;std::string&gt;())</param> <param
/// name="internalGroupIds">Each element identifies a group of users.
/// (optional, default to std::vector&lt;std::string&gt;())</param> <param
/// name="supis">Each element identifies the user. (optional, default to
/// std::vector&lt;std::string&gt;())</param>
virtual void read_bdt_policy_data(
const Pistache::Optional<std::vector<std::string>> &bdtPolicyIds,
const Pistache::Optional<std::vector<std::string>> &internalGroupIds,
const Pistache::Optional<std::vector<std::string>> &supis,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* BdtPolicyDataStoreApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "CAGACKDocumentApi.h"
#include "Helpers.h"
......@@ -21,60 +22,66 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
CAGACKDocumentApi::CAGACKDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
CAGACKDocumentApi::CAGACKDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void CAGACKDocumentApi::init() {
setupRoutes();
}
void CAGACKDocumentApi::init() { setupRoutes(); }
void CAGACKDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Get(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/subscribed-cag", Routes::bind(&CAGACKDocumentApi::query_cag_ack_handler, this));
Routes::Get(
*router,
base +
"/subscription-data/:ueId/ue-update-confirmation-data/subscribed-cag",
Routes::bind(&CAGACKDocumentApi::query_cag_ack_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&CAGACKDocumentApi::cagack_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&CAGACKDocumentApi::cagack_document_api_default_handler, this));
}
void CAGACKDocumentApi::query_cag_ack_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
this->query_cag_ack(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void CAGACKDocumentApi::query_cag_ack_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
}
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
void CAGACKDocumentApi::cagack_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
try {
this->query_cag_ack(ueId, supportedFeatures, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
}
void CAGACKDocumentApi::cagack_document_api_default_handler(
const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
/*
* CAGACKDocumentApi.h
*
*
*
*/
#ifndef CAGACKDocumentApi_H_
#define CAGACKDocumentApi_H_
#include <pistache/http.h>
#include <pistache/router.h>
#include <pistache/http_headers.h>
#include <pistache/optional.h>
#include <pistache/router.h>
#include "CagAckData.h"
#include <string>
......@@ -35,38 +34,43 @@ namespace api {
using namespace org::openapitools::server::model;
class CAGACKDocumentApi {
class CAGACKDocumentApi {
public:
CAGACKDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~CAGACKDocumentApi() {}
void init();
CAGACKDocumentApi(std::shared_ptr<Pistache::Rest::Router>);
virtual ~CAGACKDocumentApi() {}
void init();
const std::string base = "/nudr-dr/v2";
const std::string base = "/nudr-dr/v2";
private:
void setupRoutes();
void query_cag_ack_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void cagack_document_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the CAG acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to &quot;&quot;)</param>
virtual void query_cag_ack(const std::string &ueId, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response) = 0;
void setupRoutes();
void query_cag_ack_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
void
cagack_document_api_default_handler(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
/// <summary>
/// Retrieves the CAG acknowledgement information of a UE
/// </summary>
/// <remarks>
///
/// </remarks>
/// <param name="ueId">UE id</param>
/// <param name="supportedFeatures">Supported Features (optional, default to
/// &quot;&quot;)</param>
virtual void
query_cag_ack(const std::string &ueId,
const Pistache::Optional<std::string> &supportedFeatures,
Pistache::Http::ResponseWriter &response) = 0;
};
}
}
}
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
#endif /* CAGACKDocumentApi_H_ */
/**
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
* Nudr_DataRepository API OpenAPI file
* Unified Data Repository Service. © 2020, 3GPP Organizational Partners (ARIB,
* ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
*
* The version of the OpenAPI document: 2.1.2
*
*
* NOTE: This class is auto generated by OpenAPI Generator
* (https://openapi-generator.tech). https://openapi-generator.tech Do not edit
* the class manually.
*/
#include "CAGUpdateAckDocumentApi.h"
#include "Helpers.h"
......@@ -21,65 +22,73 @@ namespace api {
using namespace org::openapitools::server::helpers;
using namespace org::openapitools::server::model;
CAGUpdateAckDocumentApi::CAGUpdateAckDocumentApi(std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
CAGUpdateAckDocumentApi::CAGUpdateAckDocumentApi(
std::shared_ptr<Pistache::Rest::Router> rtr) {
router = rtr;
}
void CAGUpdateAckDocumentApi::init() {
setupRoutes();
}
void CAGUpdateAckDocumentApi::init() { setupRoutes(); }
void CAGUpdateAckDocumentApi::setupRoutes() {
using namespace Pistache::Rest;
using namespace Pistache::Rest;
Routes::Put(*router, base + "/subscription-data/:ueId/ue-update-confirmation-data/subscribed-cag", Routes::bind(&CAGUpdateAckDocumentApi::create_cag_update_ack_handler, this));
Routes::Put(
*router,
base +
"/subscription-data/:ueId/ue-update-confirmation-data/subscribed-cag",
Routes::bind(&CAGUpdateAckDocumentApi::create_cag_update_ack_handler,
this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(&CAGUpdateAckDocumentApi::cag_update_ack_document_api_default_handler, this));
// Default handler, called when a route is not found
router->addCustomHandler(Routes::bind(
&CAGUpdateAckDocumentApi::cag_update_ack_document_api_default_handler,
this));
}
void CAGUpdateAckDocumentApi::create_cag_update_ack_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
// Getting the body param
CagAckData cagAckData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if(!supportedFeaturesQuery.isEmpty()){
std::string valueQuery_instance;
if(fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)){
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(cagAckData);
this->create_cag_update_ack(ueId, supportedFeatures, cagAckData, response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
void CAGUpdateAckDocumentApi::create_cag_update_ack_handler(
const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter response) {
// Getting the path params
auto ueId = request.param(":ueId").as<std::string>();
}
// Getting the body param
void CAGUpdateAckDocumentApi::cag_update_ack_document_api_default_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found, "The requested method does not exist");
}
CagAckData cagAckData;
// Getting the query params
auto supportedFeaturesQuery = request.query().get("supported-features");
Pistache::Optional<std::string> supportedFeatures;
if (!supportedFeaturesQuery.isEmpty()) {
std::string valueQuery_instance;
if (fromStringValue(supportedFeaturesQuery.get(), valueQuery_instance)) {
supportedFeatures = Pistache::Some(valueQuery_instance);
}
}
try {
nlohmann::json::parse(request.body()).get_to(cagAckData);
this->create_cag_update_ack(ueId, supportedFeatures, cagAckData, response);
} catch (nlohmann::detail::exception &e) {
// send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
// send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
void CAGUpdateAckDocumentApi::cag_update_ack_document_api_default_handler(
const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
response.send(Pistache::Http::Code::Not_Found,
"The requested method does not exist");
}
} // namespace api
} // namespace server
} // namespace openapitools
} // namespace org
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment