# ---------------------------------------------------------------
# Prontus CMS
# http://www.prontus.cl
# by Altavoz.net
#
# licensed under LGPL license.
# http://www.prontus.cl/license.html
# ---------------------------------------------------------------

# -------------------------------COMENTARIO GLOBAL---------------
# ---------------------------------------------------------------
# PROPOSITO.
# -----------
# Funciones para utilizar la API ALTAVOZ SEO
# ---------------------------------------------------------------

# ---------------------------------------------------------------
# DECLARACIONES GLOBALES.
# ------------------------
use strict;
use utf8;

package lib_api_seo;
# las libs necesarias deben invocarse desde cada CGI.

our $CLIENT;

sub initUA {
    # Inicializa el UA.
    $CLIENT = LWP::UserAgent->new();
    $CLIENT->agent('Prontus CMS');
    my $conn_cache = LWP::ConnCache->new;
    $CLIENT->conn_cache($conn_cache);
}

sub api_get {
    my ($url, $headers_ref, $body) = @_;
    my $response = $CLIENT->get($url, %$headers_ref);
    if ($response->is_success) {
        return ($response->content, '');
    } else {
        print STDERR "lib_api_seo: Error en request a [$url]: ".$response->status_line."\n";
        return ($response->content, $response->status_line);
    }
}

sub process_response {
    my ($resp, $err) = @_;
    my $api_data;
    my $msg = '';
    my $json_resp;
    if ($err eq '') {
        my $ref = &JSON::from_json($resp);

        if ($ref->{'code'} eq '200') {
            $json_resp->{'status'} = 1;
            if (defined($ref->{'data'})) {
                $api_data = $ref->{'data'};
            }
            $msg = $ref->{'message'};
        } else {
            $json_resp->{'status'} = 0;
            $msg = $ref->{'message'};
        }
    } elsif ($resp ne '') {
        my $ref = &JSON::from_json($resp);
        $msg = $ref->{'message'};
    } else {
        $json_resp->{'status'} = 0;
        $msg = "Error en API [$err]";
    }

    $json_resp->{'msg'} = $msg;
    $json_resp->{'api_data'} = $api_data if ($api_data);
    return $json_resp;
}

1;
