API-Eulerian

 view release on metacpan or  search on metacpan

lib/API/Eulerian/EDW/Hook/Noop.pm  view on Meta::CPAN

# @date 26/11/2021
#
# @version 1.0
#
###############################################################################
package API::Eulerian::EDW::Hook::Noop;
use strict;
#
# Inherited interface from API::Eulerian::EDW::Hook
#
#use parent 'API::Eulerian::EDW::Hook';

use API::Eulerian::EDW::Hook();

our @ISA = qw/ API::Eulerian::EDW::Hook /;

#
# @brief Allocate a new Eulerian Data Warehouse Peer Hook.
#
# @param $class - Eulerian Data Warehouse Peer Hook Class.
# @param $setup - Setup attributes.

lib/API/Eulerian/EDW/Hook/Print.pm  view on Meta::CPAN

# Setup module name
#
package API::Eulerian::EDW::Hook::Print;
#
# Enforce compilor rules
#
use strict; use warnings;
#
# Inherited interface from API::Eulerian::EDW::Hook
#
use parent 'API::Eulerian::EDW::Hook';
#
# @brief Allocate a new Eulerian Data Warehouse Peer Hook.
#
# @param $class - Eulerian Data Warehouse Peer Hook Class.
# @param $setup - Setup attributes.
#
# @return Eulerian Data Warehouse Peer Hook instance.
#
sub new
{

lib/API/Eulerian/EDW/Parser/CSV.pm  view on Meta::CPAN

# Setup module name
#
package API::Eulerian::EDW::Parser::CSV;
#
# Enforce compilor rules
#
use strict; use warnings;
#
# Inherited interface from API::Eulerian::EDW::Parser
#
use parent 'API::Eulerian::EDW::Parser';
#
# Import Text::CSV
#
use Text::CSV;
#
# @brief
#
# @param $class - API::Eulerian::EDW::Parser class.
# @param $path - File Path.
# @param $uuid - Request uuid.

lib/API/Eulerian/EDW/Parser/JSON.pm  view on Meta::CPAN

# Setup module name
#
package API::Eulerian::EDW::Parser::JSON;
#
# Enforce compilor rules
#
use strict; use warnings;
#
# Inherited interface from API::Eulerian::EDW::Parser
#
use parent 'API::Eulerian::EDW::Parser';
#
#
#
use JSON::Streaming::Reader;
#
#
#
use FileHandle;
#
# @brief

lib/API/Eulerian/EDW/Parser/JSON.pm  view on Meta::CPAN

    {
      $key = shift;
    },
    # Property end
    end_property => sub
    {
    },
    # String
    add_string => sub
    {
      my $parent = $in[ $depth ];
      if( ref( $parent ) eq 'ARRAY' ) {
        $parent->[ scalar( @$parent ) ] = shift;
      } elsif( ref( $parent ) eq 'HASH' ) {
        $parent->{ $key } = shift;
      }
    },
    # Number
    add_number => sub
    {
      my $parent = $in[ $depth ];
      if( ref( $parent ) eq 'ARRAY' ) {
        $parent->[ scalar( @$parent ) ] = shift;
      } elsif( ref( $parent ) eq 'HASH' ) {
        $parent->{ $key } = shift;
      }
    },
    # Null
    add_null => sub
    {
      my $parent = $in[ $depth ];
      if( ref( $parent ) eq 'ARRAY' ) {
        $parent->[ scalar( @$parent ) ] = undef;
      } elsif( ref( $parent ) eq 'HASH' ) {
        $parent->{ $key } = undef;
      }
    },
    # Object begin
    start_object => sub
    {
      $in[ ++$depth ] = {};
    },
    # Object end
    end_object => sub
    {
      my $parent = $in[ $depth - 1 ] if $depth > 0;
      if( ref( $parent ) eq 'ARRAY' ) {
        $parent->[ scalar( @$parent ) ] = $in[ $depth ];
      } elsif( ref( $parent ) eq 'HASH' ) {
        $parent->{ $key } = $in[ $depth ];
      }
      if( $depth == 1 ) {
        $msg = $in[ $depth ];
        #print( Dumper( $msg ) . "\n" ); die "";
        $uuid = $msg->{ uuid };
        print( "UUID : $uuid\n" );
        $hooks->on_headers(
          $uuid, $msg->{ from }, $msg->{ to },
          $msg->{ schema }
          );

lib/API/Eulerian/EDW/Parser/JSON.pm  view on Meta::CPAN

      $depth--;
    },
    # Array begin
    start_array => sub
    {
      $in[ ++$depth ] = [];
    },
    # Array end
    end_array => sub
    {
      my $parent = $in[ $depth - 1 ] if $depth > 0;
      if( ref( $parent ) eq 'ARRAY' ) {
        $parent->[ scalar( @$parent ) ] = $in[ $depth ];
      } elsif( ref( $parent ) eq 'HASH' ) {
        $parent->{ $key } = $in[ $depth ];
      }
      if( $depth == 2 && $uuid ) {
        $hooks->on_add( $uuid, [ $in[ $depth ] ] );
      }
      $depth--;
    },
  );
  $hooks->on_status( $uuid, '', 0, 'Success', 0 );

}



( run in 0.248 second using v1.01-cache-2.11-cpan-4d50c553e7e )