package Google::Voice::Call;

use strict;
use warnings;

use Mojo::Base -base;

__PACKAGE__->attr([qw/ from to rnr_se ua /]);

sub new {
  my $self = bless {}, shift;

  $self->from(shift);
  $self->to(shift);
  $self->rnr_se(shift);
  $self->ua(shift);

  return $self;
}

sub cancel {
  my $self = shift;
  my ($from, $to) = @_;

  my $json = $self->ua->post(
    'https://www.google.com/voice/call/cancel/' => form => {
      forwardingNumber => undef,
      outgoingNumber   => undef,
      cancelType       => 'C2C',
      _rnr_se          => $self->rnr_se
    }
  )->res->json;

  $@ = $json->{data}->{code} and return unless $json->{ok};

  return $json->{ok};
}

1;

=head1 NAME

Google::Voice::Call

=head1 DESCRIPTION

Object representing active phone call

=head1 ATTRIBUTES

=head2 from

Calling from phone number

=head2 to

Calling to phone number

=head1 METHODS

=head2 new

=head2 cancel

Cancel connected phone call

=cut