package Loctools::Net::OAuth2::Session;
use strict;
use JSON qw(decode_json encode_json);
use Net::OAuth2::Profile::WebServer;
sub new {
my ($class, %params) = @_;
my $session_file = $para
lf) = @_;
warn "Loading OAuth2 session from $self->{session_file}\n";
my $session = _load_json($self->{session_file}) or die $!;
$self->{token} = Net::OAuth2::AccessToken->session_thaw(
aving OAuth2 session to $self->{session_file}\n";
_save_json($self->{session_file}, $self->{token}->session_freeze());
}
sub _load_json {
my ($filename) = @_;
open IN, $filename || die "C
:Client;
use strict;
use HTTP::Headers;
use HTTP::Request;
use LWP::UserAgent;
use JSON qw(decode_json encode_json);
my $DEFAULT_MAX_RETRIES = 5;
sub new {
my ($class, %params) = @_;
my $
'POST', @_);
}
sub post_json {
my ($self, $url, $content, $headers) = @_;
return $self->post($url, encode_json($content), _add_json_header($headers));
}
sub put_json {
my ($self, $url, $
ncode_json($content), _add_json_header($headers));
}
sub _add_json_header {
my $headers = shift;
$headers = {} unless defined $headers;
$headers->{'Content-type'} = 'application/json; cha