#include
#include "algorithm/create.hpp"
extern "C" int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
try {
mgp::MemoryDispatcherGuard guard{memory};
AddProcedure(Create::SetRelProperty, Create::kProcedureSetRelProp, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kArgumentsRelationship, mgp::Type::Any),
mgp::Parameter(Create::kArgumentsKey, mgp::Type::String),
mgp::Parameter(Create::kArgumentsValue, mgp::Type::Any)},
{mgp::Return(Create::kReturnRelProp, mgp::Type::Relationship)}, module, memory);
AddProcedure(Create::RemoveLabels, Create::kProcedureRemoveLabels, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kArgumentNodesRemoveLabels, mgp::Type::Any),
mgp::Parameter(Create::kArgumentsLabels, {mgp::Type::List, mgp::Type::String})},
{mgp::Return(Create::kReturnRemoveLabels, mgp::Type::Node)}, module, memory);
AddProcedure(Create::SetProperties, Create::kProcedureSetProperties, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kArgumentsNodes, mgp::Type::Any),
mgp::Parameter(Create::kArgumentsKeys, {mgp::Type::List, mgp::Type::String}),
mgp::Parameter(Create::kArgumentsValues, {mgp::Type::List, mgp::Type::Any})},
{mgp::Return(Create::kReturnProperties, mgp::Type::Node)}, module, memory);
AddProcedure(Create::Node, Create::kProcedureNode, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kArgumentsLabelsList, {mgp::Type::List, mgp::Type::String}),
mgp::Parameter(Create::kArgumentsProperties, mgp::Type::Map)},
{mgp::Return(Create::kReturnNode, mgp::Type::Node)}, module, memory);
AddProcedure(
Create::Nodes, std::string(Create::kProcedureNodes).c_str(), mgp::ProcedureType::Write,
{mgp::Parameter(std::string(Create::kArgumentLabelsNodes).c_str(), {mgp::Type::List, mgp::Type::String}),
mgp::Parameter(std::string(Create::kArgumentPropertiesNodes).c_str(), {mgp::Type::List, mgp::Type::Map})},
{mgp::Return(std::string(Create::kReturnNodes).c_str(), mgp::Type::Node)}, module, memory);
AddProcedure(Create::RemoveProperties, std::string(Create::kProcedureRemoveProperties).c_str(),
mgp::ProcedureType::Write,
{mgp::Parameter(std::string(Create::kArgumentNodeRemoveProperties).c_str(), mgp::Type::Any),
mgp::Parameter(std::string(Create::kArgumentKeysRemoveProperties).c_str(),
{mgp::Type::List, mgp::Type::String})},
{mgp::Return(std::string(Create::kReturntRemoveProperties).c_str(), mgp::Type::Node)}, module, memory);
AddProcedure(Create::SetProperty, std::string(Create::kProcedureSetProperty).c_str(), mgp::ProcedureType::Write,
{mgp::Parameter(std::string(Create::kArgumentNodeSetProperty).c_str(), mgp::Type::Any),
mgp::Parameter(std::string(Create::kArgumentKeySetProperty).c_str(), mgp::Type::String),
mgp::Parameter(std::string(Create::kArgumentValueSetProperty).c_str(), mgp::Type::Any)},
{mgp::Return(std::string(Create::kReturntSetProperty).c_str(), mgp::Type::Node)}, module, memory);
AddProcedure(Create::RemoveRelProperties, Create::kProcedureRemoveRelProperties, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kRemoveRelPropertiesArg1, mgp::Type::Any),
mgp::Parameter(Create::kRemoveRelPropertiesArg2, {mgp::Type::List, mgp::Type::String})},
{mgp::Return(Create::kResultRemoveRelProperties, mgp::Type::Relationship)}, module, memory);
AddProcedure(Create::SetRelProperties, Create::kProcedureSetRelProperties, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kSetRelPropertiesArg1, mgp::Type::Any),
mgp::Parameter(Create::kSetRelPropertiesArg2, {mgp::Type::List, mgp::Type::String}),
mgp::Parameter(Create::kSetRelPropertiesArg3, {mgp::Type::List, mgp::Type::Any})},
{mgp::Return(Create::kResultSetRelProperties, mgp::Type::Relationship)}, module, memory);
AddProcedure(Create::Relationship, Create::kProcedureRelationship, mgp::ProcedureType::Write,
{mgp::Parameter(Create::kRelationshipArg1, mgp::Type::Node),
mgp::Parameter(Create::kRelationshipArg2, mgp::Type::String),
mgp::Parameter(Create::kRelationshipArg3, mgp::Type::Map),
mgp::Parameter(Create::kRelationshipArg4, mgp::Type::Node)},
{mgp::Return(Create::kResultRelationship, mgp::Type::Relationship)}, module, memory);
} catch (const std::exception &e) {
return 1;
}
return 0;
}
extern "C" int mgp_shutdown_module() { return 0; }