AllPositionController.php 4.1 KB
<?php
/**
 * Created by PhpStorm.
 * User: Alex Savenko
 * Date: 22.02.2017
 * Time: 20:18
 */

namespace App\Controllers;



use allpositions\api\Client;
use Phalcon\Exception;
use PhalconRest\Mvc\Controllers\CrudResourceController;

class AllPositionController extends CrudResourceController
{
    const API_KEY = '150bb253651622507341cd7845f5b9d2';

    /**
     * Данные о проекте
     *
     * @return array [url, cy, pr, yaca, dmoz, yahoo]
     */
    public function projectAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;

        $APObj = new Client(self::API_KEY);

        $project_info = $APObj->getProject($project);

        return $project_info;

    }

    /**
     * Список проектов пользователя
     *
     * @return array[] [id_project, id_group, url, cy, pr]
     */
    public function projectsAction() {

        /** user params **/
        $id_group  = $this->request->get('id_group') ?? null;

        $APObj = new Client(self::API_KEY);

        $projects_info = $APObj->getProjects($id_group);

        return $projects_info;

    }

    /**
     * Список групп проектов
     *
     * @return array[] [id_group, group]
     */
    public function projectsGroupAction() {

        $APObj = new Client(self::API_KEY);

        $projects_group = $APObj->getProjectsGroup();

        return $projects_group;

    }

    /**
     * Список запросов, по которым определяется позиция сайта
     *
     * @return array[] [id_query, id_group, query, freq, url]
     */
    public function queriesAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;
        $id_group = $this->request->get('id_group') ?? null;

        $APObj = new Client(self::API_KEY);

        $queries_info = $APObj->getQueries($project, $id_group);

        return $queries_info;

    }

    /**
     * Список групп запросов
     *
     * @return array[] [id_group, group]
     */
    public function queriesGroupAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;

        $APObj = new Client(self::API_KEY);

        $queries_group = $APObj->getQueriesGroup($project);

        return $queries_group;

    }

    /**
     * Отчет по позициям сайта
     *
     * @return array [
     * count, top3, top10, top30, down, up, date, prev_date,
     * sengines[id_se, name_se, name_region][],
     * queries[id_query, query, wordstat][],
     * positions[position, prev_position, change_position, url][]
     * ]
     */
    public function reportAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;
        $date = $this->request->get('date') ?? '2017-01-31';
        $prev_date = $this->request->get('prev_date') ?? '2017-01-01';

        $APObj = new Client(self::API_KEY);

        $report_info = $APObj->getReport($project, $date, $prev_date);

        return $report_info;

    }

    /**
     * Данные о видимости сайта за указанный период
     *
     * @return array [id_project, begin_date, end_date, id_se]
     */
    public function visibilityAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;
        $get_start_date = $this->request->get('start') ?? '30daysAgo';
        $get_end_date = $this->request->get('end') ?? 'today';
        $id_se = $this->request->get('id_se') ?? 0;

        $APObj = new Client(self::API_KEY);

        $visibility_info = $APObj->getVisibility($project, $get_start_date, $get_end_date, $id_se);

        return $visibility_info;

    }

    /**
     * Список дат, когда обновлялись позиции сайта
     *
     * @return array
     */
    public function reportDatesAction() {

        /** user params **/
        $project = $this->request->get('project') ?? 418068;

        $APObj = new Client(self::API_KEY);

        $report_info = $APObj->getReportDates($project);

        return $report_info;

    }

}