name('All Position') ->expectsJsonData() ->itemKey('ap') ->collectionKey('ap') ->deny(AclRoles::UNAUTHORIZED) ->handler(AllPositionController::class) /** -------------------- [GET] project ------------------------------ **/ ->endpoint( ApiEndpoint::factory('/project', HttpMethods::GET, 'projectAction') ->name('project') ->description('Данные о проекте') ->paramsDescription([ 'required params' => [ 'project' => "integer(ID проекта)" ] ]) ->exampleResponse([ "url" => "rukzachok.com.ua(URL проекта)", "cy" => "60(тИЦ)", "pr" => "0(Google PageRank)", "yaca" => "0(Наличие сайта в Яндекс каталоге)", "dmoz" => "0(Наличие сайта в DMOZ)", "yahoo" => "0(Наличие сайта в Yahoo)", "name" => "rukzachok.com.ua", "interval" => 0 ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] projects ----------------------------- **/ ->endpoint( ApiEndpoint::factory('/projects', HttpMethods::GET, 'projectsAction') ->name('projects') ->description('Список проектов пользователя') ->paramsDescription([ 'required params' => [], 'optional params' => [ 'id_group' => "integer(ID проекта)" ] ]) ->exampleResponse([ [ "id_project" => "{id}(ID проекта)", "id_group" => "11111(ID группы проектов)", "url" => "8nebo.com(URL проекта)", "cy" => "20(тИЦ)", "pr" => "0(Google PageRank)", "name" => "8nebo.com", "interval" => 7, "sleep" => 1 ], [ "id_project" => "{id}(ID проекта)", "id_group" => "11111(ID группы проектов)", "url" => "a-v-z.com.ua(URL проекта)", "cy" => "10(тИЦ)", "pr" => "0(Google PageRank)", "name" => "", "interval" => 0, "sleep" => 0 ] ]) ->allow(AclRoles::USER) ) /** ------------------------------------------------------------------**/ /** -------------------- [GET] projects_group ----------------------- **/ ->endpoint( ApiEndpoint::factory('/projects_group', HttpMethods::GET, 'projectsGroupAction') ->name('projects group') ->description('Список групп проектов') ->paramsDescription([ 'required params' => [] ]) ->exampleResponse([ [ "id_group" => "{id}(ID группы проектов)", "group" => "bkko.com.ua(Название группы)" ], [ "id_group" => "{id}(ID группы проектов)", "group" => "Dveri(Название группы)" ] ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] queries ------------------------------ **/ ->endpoint( ApiEndpoint::factory('/queries', HttpMethods::GET, 'queriesAction') ->name('queries') ->description('Список запросов, по которым определяется позиция сайта') ->paramsDescription([ 'required params' => [ 'project' => 'integer(ID проекта)' ], 'optional params' => [ 'id_group' => 'integer(ID группы запросов)' ] ]) ->exampleResponse([ [ "id_query" => "{id}(ID запроса)", "id_group" => "{id}(ID группы запросов)", "query" => "=рюкзаки переноски для детей(Запрос)", "freq" => "50(Частота запроса)", "url" => "(URL целевой страницы)" ], [ "id_query" => "{id}(ID запроса)", "id_group" => "{id}(ID группы запросов)", "query" => "dakine кошелек(Запрос)", "freq" => "10(Частота запроса)", "url" => "(URL целевой страницы)" ] ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] queries_group ------------------------ **/ ->endpoint( ApiEndpoint::factory('/queries_group', HttpMethods::GET, 'queriesGroupAction') ->name('queries group') ->description('Список групп запросов') ->paramsDescription([ 'required params' => ['project' => 'integer(ID проекта)'] ]) ->exampleResponse([ [ "id_group" => "{id}(ID группы запросов)", "group" => "head рюкзак(Название группы)" ], [ "id_group" => "{id}(ID группы запросов)", "group" => "quiksilver рюкзак(Название группы)" ] ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] report ------------------------------- **/ ->endpoint( ApiEndpoint::factory('/report', HttpMethods::GET, 'reportAction') ->name('report') ->description('Отчет по позициям сайта') ->paramsDescription([ 'required params' => [ 'project' => 'integer(ID проекта)' ], 'optional params' => [ 'date' => 'date(дата отчета в формате Y-m-d (например, 2010-12-31))', 'prev_date' => 'date(дата для сравнения позиции сайта в формате Y-m-d (например, 2010-12-30))' ] ]) ->exampleResponse([ "count" => "526(Количество запросов)", "top3" => "50(Запросов в ТОП 3)", "top10" => "113(Запросов в ТОП 3)", "top30" => "275(Запросов в ТОП 3)", "down" => "230(Позиций улучшилось)", "up" => "205(Позиций улучшилось)", "sengines" => [ [ "id_se" => "{id}(ID поисковой системы)", "name_se" => "Google(название поисковой системы)", "name_region" => "com.ua/Киев(название региона)" ], [ "id_se" => "{id}(ID поисковой системы)", "name_se" => "Google(название поисковой системы)", "name_region" => "com.ua(название региона)" ] ], "queries" => [ [ "id_query" => "{id}(ID запроса)", "query" => "=рюкзаки переноски для детей(запрос)", "wordstat" => "50(частота запроса)" ], [ "id_query" => "{id}(ID запроса)", "query" => "dakine кошелек(запрос)", "wordstat" => "10(частота запроса)" ] ], "positions" => [ [ "position " => "{id}(ID запроса)", "prev_position " => "=рюкзаки переноски для детей(запрос)", "change_position" => "50(частота запроса)", "url" => "50(частота запроса)" ], [ "position " => "(текущая позиция сайта)", "prev_position " => "(предыдущая позиция сайта)", "change_position" => "(изменение позиции сайта)", "url" => "(найденный URL)" ] ] ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] visibility --------------------------- **/ ->endpoint( ApiEndpoint::factory('/visibility', HttpMethods::GET, 'visibilityAction') ->name('visibility') ->description('Данные о видимости сайта за указанный период') ->paramsDescription([ 'required params' => [ 'project' => 'integer(ID проекта)' ], 'optional params' => [ 'start' => 'date(начальная дата в формате Y-m-d (например, 2010-12-01))', 'end' => 'date(конечная дата в формате Y-m-d (например, 2010-12-31))', 'id_se' => 'integer(ID поисковой системы)' ] ]) ->exampleResponse([ "2017-02-13" => "0.2", "2017-02-15" => "0.2", "2017-02-20" => "0.3", "2017-02-26" => "0.3", "2017-03-06" => "0.3", "2017-03-12" => "0.2" ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ /** -------------------- [GET] visibility --------------------------- **/ ->endpoint( ApiEndpoint::factory('/report_dates', HttpMethods::GET, 'reportDatesAction') ->name('report dates') ->description('Список дат, когда обновлялись позиции сайта') ->paramsDescription([ 'required params' => [ 'project' => 'integer(ID проекта)' ], ]) ->exampleResponse([ "2017-02-13" => "0.2", "2017-02-15" => "0.2", "2017-02-20" => "0.3", "2017-02-26" => "0.3", "2017-03-06" => "0.3", "2017-03-12" => "0.2" ]) ->allow(AclRoles::USER) ) /** ----------------------------------------------------------------- **/ ; } }