HTTP-QuickBase

 view release on metacpan or  search on metacpan

QuickBase.pm  view on Meta::CPAN

	}

	$self = bless {
		'URLprefix' => $prefix || "https://www.quickbase.com/db" ,
		'ticket' => undef,
		'apptoken' => "",
		'error' => undef,
		'errortext' => undef,
		'username' => undef,
		'password' => undef,
		'credentials' => undef,
		'proxy' => undef,
		'realmhost' => undef
		}, $class;

}

sub authenticate ($$)
{
my($self, $username, $password) = @_;
	$self->{'username'} = $username;
	$self->{'password'} = $password;
	$username = $self->xml_escape($username);
	$password = $self->xml_escape($password);
	$self->{'credentials'} = "<username>$username<\/username><password>$password<\/password>";
	$self->{'ticket'}="";
	return "";
}

sub setAppToken($)
{
  my($self,$apptoken) = @_;
  $self->{'apptoken'} = $apptoken;
}

sub getTicket()
{
my($self) = @_;
    #First we have to get the authorization ticket
	#We do this by posting the QuickBase username and password to QuickBase
	#This is where we post the QuickBase username and password
	my $res = $self->PostAPIURL ("main", "API_Authenticate", 
		  "<qdbapi>".
			$self->{'credentials'}.
          "</qdbapi>");
	if ($res->content =~ /<errcode>(.*?)<\/errcode>.*?<errtext>(.*?)<\/errtext>/s)
		{
		$self->{'error'} = $1;
		$self->{'errortext'} = $2;
		}
	if ($res->content =~ /<errdetail>(.*?)<\/errdetail>/s)
		{
		$self->{'errortext'} = $1;
		}		
	if ($self->{'error'} eq '0')
		{
		$res->content =~ /<ticket>(.*?)<\/ticket>/s;
		$self->{'ticket'} = $1;
		$self->{'credentials'} = "<ticket>$self->{'ticket'}<\/ticket>";
		}
	else
		{
		return "";
		}
	return $self->{'ticket'};
}

sub URLprefix()
{

QuickBase.pm  view on Meta::CPAN

    $req->uri($self->URLprefix()."/$QuickBaseDBid?realmhost=$self->{'realmhost'}");
    }
else
    {
    $req->uri($self->URLprefix()."/$QuickBaseDBid");
    }

$req->content_type('text/xml');
$req->header('QUICKBASE-ACTION' => "$action");

if ($self->{'apptoken'} ne "" && $self->{'credentials'} !~ /<apptoken>/)
   {
      $self->{'credentials'} .= "<apptoken>".$self->{'apptoken'}."</apptoken>";
   }

if($content =~ /^<qdbapi>/)
    {
    $content =~s/^<qdbapi>/<qdbapi>$self->{'credentials'}/;
    }
elsif($content eq "" || !defined($content)) 
    {
    $content ="<qdbapi>$self->{'credentials'}</qdbapi>";
    }
if($content =~ /^<qdbapi>/)
    {
    $content = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" . $content;
    }
my $res;
if ($self->{'ticket'})
    {
    $req->header('Cookie' => "TICKET=$self->{'ticket'};");
    }

QuickBase.pm  view on Meta::CPAN

$req->content($content);
$res = $ua->request($req);
if($res->is_error()){
        $self->{'error'} = $res->code;
$self->{'errortext'} =$res->message;
        return $res;
        }
if (defined ($res->header('Set-Cookie')) && $res->header('Set-Cookie') =~ /TICKET=(.+?);/)
        {
        $self->{'ticket'} = $1;
        $self->{'credentials'} = "<ticket>$self->{'ticket'}</ticket>";
        }
elsif ($res->content =~ /<ticket>(.+?)<\/ticket>/)
        {
        $self->{'ticket'} = $1;
        $self->{'credentials'} = "<ticket>$self->{'ticket'}</ticket>";
        }

$res->content =~ /<errcode>(.*?)<\/errcode>.*?<errtext>(.*?)<\/errtext>/s;
$self->{'error'} = $1;
$self->{'errortext'} = $2;
if ($res->content =~ /<errdetail>(.*?)<\/errdetail>/s)
    {
    $self->{'errortext'} = $1;
    }
if($self->{'error'} eq '11')



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