<?php
class Correios
{

    const DESC = 1;
    const ASC = 2;

    public static function getCartTraking($cod, $order = self::DESC)
    {
        if ($cod && $cod != "") {
            try {
                $client = new SoapClient('https://araraazulweb.com/public/correios/Rastro.wsdl');
                $result = $client->buscaEventos(array(
                    "usuario" => "ECT",
                    "senha" => "SRO",
                    "tipo" => "L",
                    "resultado" => "T",
                    'lingua' => "101",
                    "objetos" => $cod
                ));
            } catch (Exception $e) {
                return array(
                    'status' => 0
                );
            }


            if (isset($result->return->objeto->evento)) {
                $eventos = $result->return->objeto->evento;

                $toReturn = array();

                if (gettype($eventos) == 'object') {
                    $eventos = array($eventos);
                }

                foreach ($eventos as $evento) {
                    $evento = get_object_vars($evento);
                    $newEvento = array();
                    $newEvento['date'] = $evento['hora'] . ' - ' . $evento['data'];
                    $newEvento['description'] = $evento['descricao'] . ' - ' . $evento['local'];
                    $newEvento['location'] = array();

                    if (isset($evento['cidade']) && $evento['cidade'] != '') {
                        $newEvento['location'][] = ucwords(strtolower($evento['cidade']));
                    }

                    if (isset($evento['uf']) && $evento['uf'] != '') {
                        $newEvento['location'][] = $evento['uf'];
                    }

                    $newEvento['location'] = implode(' - ', $newEvento['location']);

                    $toReturn[] = $newEvento;
                }

                if ($order == self::ASC) {
                    $toReturn = array_reverse($toReturn);
                }

                return array(
                    'status' => 1,
                    'response' => $toReturn
                );
            } else {
                return array(
                    'status' => 0
                );
            }
        } else {
            return array(
                'status' => 0
            );
        }
    }

}