rm => \%form)->result;
die color_error $res->message if $res->is_error;
my $response = $res->json;
say_ok 'ok';
return $response;
}
sub _auth_headers ($self, $headers = {}) {
my $access_t
rm)->result;
Carp::confess $res->message if $res->is_error;
$self->_set_token($config, $res->json);
return $self;
}
1;
=encoding utf8
=head1 NAME
Nuvol::Connector - Base class for Nuvol co
$self->url('create_folder_v2'),
json => {path => $self->realpath->to_route});
Carp::confess $res->message if $res->is_error;
$self->_set_metadata($res->json->{metadata});
return $self;
}
, join '', @data);
Carp::confess $res->message if $res->is_error;
$self->_set_metadata($res->json);
return $self;
}
sub _from_file ($self, $source) {
# issue copy command
my %target = (
=> $self->name,
);
my $res = $source->drive->connector->_ua_post($source->url('copy'), json => \%target);
Carp::confess $res->message if $res->is_error;
my $location = $res->headers->lo
(!$res->json->{resourceId}) {
sleep 1;
$res = $ua->get($location)->result;
Carp::confess $res->message if $res->is_error;
}
delete $self->{metadata};
$self->{id} = $res->json->{reso
{
my @drives;
# user's own drive
my $onedrive = $self->_ua_get($self->url('me/drive'))->json;
my $drive_type = $onedrive->{driveType};
# Office 365 Business
if ($onedrive->{driveType}
};
# SharePoint
my $teamwebsite = $self->_ua_get($self->url('sites/root/drive'))->json;
push @drives,
{
id => $teamwebsite->{id},
metadata => $teamwebsite,
};
# shared drives
my $shared = $self->_ua_get($self->url('me/drive/sharedWithMe'))->json;
for my $remote ($shared->{value}->@*) {
next if $remote->{remoteItem}->{file};
$rv = {};
} else {
Carp::confess $res->message;
}
} else {
$rv = $res->json;
}
return $rv;
}
sub _parent_reference ($self) {
my %rv;
if ($self->{metadata}) {
elete($self->url);
Carp::confess $res->message if $res->is_error;
$self->_set_metadata($res->json);
return $self;
}
1;
=encoding utf8
=head1 NAME
Nuvol::Office365::Item - Internal methods
>connector->_ua_get($self->url);
Carp::confess $res->message if $res->is_error;
return $res->json;
}
1;
=encoding utf8
=head1 NAME
Nuvol::Office365::Drive - Internal methods for Office 365 dr
ent->url('children'), json => {name => $folder, folder => {}});
Carp::confess $res->message if $res->is_error;
$parent = Nuvol::Item->new($drive, {metadata => $res->json});
}
$self->_set_
package Nuvol::Dropbox::Item;
use Mojo::Base -role, -signatures;
use Mojo::JSON 'to_json';
use constant SERVICE => 'Dropbox';
# internal methods
sub _build_realpath ($self) {
return $self->{path
&& $metadata->{id};
}
sub _dropbox_header ($self, %params) {
my %rv = ('Dropbox-API-Arg' => to_json(\%params));
return %rv;
}
sub _get_description ($self) {
return join ' ', SERVICE, $self->t
t_metadata'), json => \%params);
if ($res->is_error) {
if ($res->code == 409) {
$rv = {};
} else {
Carp::confess $res->message;
}
} else {
$rv = $res->json;
}
retu
arp::confess $res->body if $res->is_error;
$self->_set_metadata($res->json);
}
sub _from_file ($self, $source) {
my %json = (
from_path => $source->{path} || $source->{id},
to_path =>
drive->connector->_ua_post($self->url('copy_v2'), json => \%json);
Carp::confess $res->message if $res->is_error;
$self->_set_metadata($res->json->{metadata});
}
sub _from_host ($self, $source)
t, $asset->slurp);
Carp::confess $res->message if $res->is_error;
$self->_set_metadata($res->json);
}
1;
=encoding utf8
=head1 NAME
Nuvol::Dropbox::File - Internal methods for Dropbox folders
/get_current_account'));
Carp::confess $res->message if $res->is_error;
my $metadata = $res->json;
$metadata->{id} = $metadata->{account_id};
return $metadata;
}
sub _update_token ($self, $
Nuvol::Config;
use Mojo::Base -base, -signatures;
use Mojo::File 'path';
use Mojo::JSON qw|decode_json encode_json|;
use Mojo::Util 'monkey_patch';
# constants
use constant CONFIG_PARAMS =>
'acc
($configfile)->with_roles('+Digest');
if (-e $file) {
if (-f $file) {
$self = decode_json $file->slurp;
$self->{file} = $file;
} else {
Carp::croak "'$file' is not a file!
$self = {file => $file, $params->%*};
$file->dirname->make_path;
$file->spurt(encode_json $self)->chmod(0700);
}
$self->{digest} = $file->md5_sum;
return bless $self, $class;
}
#