NAME

    POE::Component::Metabase::Client::Submit - a POE client that submits to
    Metabase servers

VERSION

    version 0.16

SYNOPSIS

      use strict;
      use warnings;
      use POE qw[Component::Metabase::Client::Submit];
    
      POE::Session->create(
        package_states => [
          'main' => [qw(_start _status)],
        ],
      );
    
      sub _start {
        POE::Component::Metabase::Client::Submit->submit(
          event   => '_status',
          uri     => 'https://foo.bar.com/metabase/',
          fact    => $metabase_fact_object,
          profile => $metabase_user_profile_object,
          secret  => $metabase_user_secret_object,
        );
        return;
      }
    
      sub _status {
        my $data = $_[ARG0];
    
        print "Success!\n" if $data->{success};
    
        print $data->{error}, "\n" if $data->{error};
    
        return;
      }

DESCRIPTION

    POE::Component::Metabase::Client::Submit provides a POE mechanism for
    submitting facts to a Metabase web server.

CONSTRUCTOR

    submit

        POE::Component::Metabase::Client::Submit->spawn( %args );

      Constructs a POE session that will manage submitting a Metabase fact
      to a Metabase web server.

      Takes a number of mandatory arguments:

       'profile', a Metabase::User::Profile object
       'secret', a Metabase::User::Secret object
       'fact', a Metabase::Fact object
       'event', an event handler in the calling session to invoke on completion
       'uri', the uri of a Metabase server to submit to.

      And some optional arguments:

       'session', a session alias, reference or ID to send 'event' to instead of the calling session
       'http_alias', the alias or ID of an existing POE::Component::Client::HTTP session to use.
       'context', anything that can be stored in a scalar that is meaningful to you.
       'resolver', a reference to a POE::Component::Resolver object to use (ignored if http_alias is used).
       'compress', a compressor to use - defaults to none ( available compressors: gzip, deflate, x-bzip2, none )

OUTPUT EVENT

    An event will be sent to either the calling session or the session
    specified with session during submit.

    ARG0 of the event will be a hashref with the following keys:

    success

      Indicates that the submission was successful.

    error

      If there was an error this will contain a string indicating the error
      that occurred.

    context

      If you specified context in submit, whatever you passed will be here.

    <content>

      This will contain the content of any HTTP responses whether success
      or failure.

SEE ALSO

    Metabase

    POE

AUTHORS

      * Chris Williams <chris@bingosnet.co.uk>

      * Ricardo SIGNES

      * David A. Golden

COPYRIGHT AND LICENSE

    This software is copyright (c) 2025 by Chris Williams.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

