Commit 34cfbfc08eb3f284a0057ade7f91c33a131283fa
1 parent
e83a94b3
allposition docs
Showing
3 changed files
with
195 additions
and
23 deletions
Show diff stats
app/library/App/Bootstrap/RouteBootstrap.php
@@ -38,7 +38,7 @@ class RouteBootstrap implements BootstrapInterface | @@ -38,7 +38,7 @@ class RouteBootstrap implements BootstrapInterface | ||
38 | 38 | ||
39 | $view->setVar('title', $config->get("application")->title); | 39 | $view->setVar('title', $config->get("application")->title); |
40 | $view->setVar('description', $config->get("application")->description); | 40 | $view->setVar('description', $config->get("application")->description); |
41 | - $view->setVar('documentationPath', $config->get("hostName") . '/export/documentation.json'); | 41 | + $view->setVar('documentationPath', $config->get("hostName") . ':8080/export/documentation.json'); |
42 | return $view->render('general/documentation'); | 42 | return $view->render('general/documentation'); |
43 | }); | 43 | }); |
44 | } | 44 | } |
app/library/App/Controllers/AllPositionController.php
@@ -33,9 +33,12 @@ class AllPositionController extends CrudResourceController | @@ -33,9 +33,12 @@ class AllPositionController extends CrudResourceController | ||
33 | 33 | ||
34 | public function projectsAction() { | 34 | public function projectsAction() { |
35 | 35 | ||
36 | + /** user params **/ | ||
37 | + $id_group = $this->request->get('id_group') ?? null; | ||
38 | + | ||
36 | $APObj = new Client(self::API_KEY); | 39 | $APObj = new Client(self::API_KEY); |
37 | 40 | ||
38 | - $projects_info = $APObj->getProjects(); | 41 | + $projects_info = $APObj->getProjects($id_group); |
39 | 42 | ||
40 | return $projects_info; | 43 | return $projects_info; |
41 | 44 | ||
@@ -55,10 +58,11 @@ class AllPositionController extends CrudResourceController | @@ -55,10 +58,11 @@ class AllPositionController extends CrudResourceController | ||
55 | 58 | ||
56 | /** user params **/ | 59 | /** user params **/ |
57 | $project = $this->request->get('project') ?? 418068; | 60 | $project = $this->request->get('project') ?? 418068; |
61 | + $id_group = $this->request->get('id_group') ?? null; | ||
58 | 62 | ||
59 | $APObj = new Client(self::API_KEY); | 63 | $APObj = new Client(self::API_KEY); |
60 | 64 | ||
61 | - $projects_info = $APObj->getQueries($project); | 65 | + $projects_info = $APObj->getQueries($project, $id_group); |
62 | 66 | ||
63 | return $projects_info; | 67 | return $projects_info; |
64 | 68 | ||
@@ -82,10 +86,11 @@ class AllPositionController extends CrudResourceController | @@ -82,10 +86,11 @@ class AllPositionController extends CrudResourceController | ||
82 | /** user params **/ | 86 | /** user params **/ |
83 | $project = $this->request->get('project') ?? 418068; | 87 | $project = $this->request->get('project') ?? 418068; |
84 | $date = $this->request->get('date') ?? '2017-01-31'; | 88 | $date = $this->request->get('date') ?? '2017-01-31'; |
89 | + $prev_date = $this->request->get('prev_date') ?? '2017-01-01'; | ||
85 | 90 | ||
86 | $APObj = new Client(self::API_KEY); | 91 | $APObj = new Client(self::API_KEY); |
87 | 92 | ||
88 | - $projects_info = $APObj->getReport($project, $date); | 93 | + $projects_info = $APObj->getReport($project, $date, $prev_date); |
89 | 94 | ||
90 | return $projects_info; | 95 | return $projects_info; |
91 | 96 | ||
@@ -97,10 +102,11 @@ class AllPositionController extends CrudResourceController | @@ -97,10 +102,11 @@ class AllPositionController extends CrudResourceController | ||
97 | $project = $this->request->get('project') ?? 418068; | 102 | $project = $this->request->get('project') ?? 418068; |
98 | $get_start_date = $this->request->get('start') ?? '30daysAgo'; | 103 | $get_start_date = $this->request->get('start') ?? '30daysAgo'; |
99 | $get_end_date = $this->request->get('end') ?? 'today'; | 104 | $get_end_date = $this->request->get('end') ?? 'today'; |
105 | + $id_se = $this->request->get('id_se') ?? 0; | ||
100 | 106 | ||
101 | $APObj = new Client(self::API_KEY); | 107 | $APObj = new Client(self::API_KEY); |
102 | 108 | ||
103 | - $projects_info = $APObj->getVisibility($project, $get_start_date, $get_end_date); | 109 | + $projects_info = $APObj->getVisibility($project, $get_start_date, $get_end_date, $id_se); |
104 | 110 | ||
105 | return $projects_info; | 111 | return $projects_info; |
106 | 112 |
app/library/App/Resources/AllPositionResource.php
@@ -32,51 +32,217 @@ class AllPositionResource extends ApiResource | @@ -32,51 +32,217 @@ class AllPositionResource extends ApiResource | ||
32 | 32 | ||
33 | ->endpoint( | 33 | ->endpoint( |
34 | ApiEndpoint::factory('/project', HttpMethods::GET, 'projectAction') | 34 | ApiEndpoint::factory('/project', HttpMethods::GET, 'projectAction') |
35 | - ->name('project') | ||
36 | - ->description('Данные о проекте') | ||
37 | - ->allow(AclRoles::USER) | 35 | + ->name('project') |
36 | + ->description('Данные о проекте') | ||
37 | + ->exampleRequest([ | ||
38 | + 'required params' => [ | ||
39 | + 'project' => "integer(ID проекта)" | ||
40 | + ] | ||
41 | + ]) | ||
42 | + ->exampleResponse([ | ||
43 | + "url" => "rukzachok.com.ua(URL проекта)", | ||
44 | + "cy" => "60(тИЦ)", | ||
45 | + "pr" => "0(Google PageRank)", | ||
46 | + "yaca" => "0(Наличие сайта в Яндекс каталоге)", | ||
47 | + "dmoz" => "0(Наличие сайта в DMOZ)", | ||
48 | + "yahoo" => "0(Наличие сайта в Yahoo)", | ||
49 | + "name" => "rukzachok.com.ua", | ||
50 | + "interval" => 0 | ||
51 | + ]) | ||
52 | + ->allow(AclRoles::USER) | ||
38 | ) | 53 | ) |
39 | 54 | ||
40 | ->endpoint( | 55 | ->endpoint( |
41 | ApiEndpoint::factory('/projects', HttpMethods::GET, 'projectsAction') | 56 | ApiEndpoint::factory('/projects', HttpMethods::GET, 'projectsAction') |
42 | - ->name('projects') | ||
43 | - ->description('Список проектов пользователя') | ||
44 | - ->allow(AclRoles::UNAUTHORIZED) | 57 | + ->name('projects') |
58 | + ->description('Список проектов пользователя') | ||
59 | + ->exampleRequest([ | ||
60 | + 'required params' => [], | ||
61 | + 'optional params' => [ | ||
62 | + 'id_group' => "integer(ID проекта)" | ||
63 | + ] | ||
64 | + ]) | ||
65 | + ->exampleResponse([ | ||
66 | + [ | ||
67 | + "id_project" => "{id}(ID проекта)", | ||
68 | + "id_group" => "11111(ID группы проектов)", | ||
69 | + "url" => "8nebo.com(URL проекта)", | ||
70 | + "cy" => "20(тИЦ)", | ||
71 | + "pr" => "0(Google PageRank)", | ||
72 | + "name" => "8nebo.com", | ||
73 | + "interval" => 7, | ||
74 | + "sleep" => 1 | ||
75 | + ], | ||
76 | + [ | ||
77 | + "id_project" => "{id}(ID проекта)", | ||
78 | + "id_group" => "11111(ID группы проектов)", | ||
79 | + "url" => "a-v-z.com.ua(URL проекта)", | ||
80 | + "cy" => "10(тИЦ)", | ||
81 | + "pr" => "0(Google PageRank)", | ||
82 | + "name" => "", | ||
83 | + "interval" => 0, | ||
84 | + "sleep" => 0 | ||
85 | + ] | ||
86 | + ]) | ||
87 | + ->allow(AclRoles::USER) | ||
45 | ) | 88 | ) |
46 | 89 | ||
47 | ->endpoint( | 90 | ->endpoint( |
48 | ApiEndpoint::factory('/projects_group', HttpMethods::GET, 'projectsGroupAction') | 91 | ApiEndpoint::factory('/projects_group', HttpMethods::GET, 'projectsGroupAction') |
49 | - ->name('projects group') | ||
50 | - ->description('Список групп проектов') | ||
51 | - ->allow(AclRoles::USER) | 92 | + ->name('projects group') |
93 | + ->description('Список групп проектов') | ||
94 | + ->exampleRequest([ | ||
95 | + 'required params' => [] | ||
96 | + ]) | ||
97 | + ->exampleResponse([ | ||
98 | + [ | ||
99 | + "id_group" => "{id}(ID группы проектов)", | ||
100 | + "group" => "bkko.com.ua(Название группы)" | ||
101 | + ], | ||
102 | + [ | ||
103 | + "id_group" => "{id}(ID группы проектов)", | ||
104 | + "group" => "Dveri(Название группы)" | ||
105 | + ] | ||
106 | + ]) | ||
107 | + ->allow(AclRoles::USER) | ||
52 | ) | 108 | ) |
53 | 109 | ||
54 | ->endpoint( | 110 | ->endpoint( |
55 | ApiEndpoint::factory('/queries', HttpMethods::GET, 'queriesAction') | 111 | ApiEndpoint::factory('/queries', HttpMethods::GET, 'queriesAction') |
56 | - ->name('queries') | ||
57 | - ->description('Список запросов, по которым определяется позиция сайта') | ||
58 | - ->allow(AclRoles::USER) | 112 | + ->name('queries') |
113 | + ->description('Список запросов, по которым определяется позиция сайта') | ||
114 | + ->exampleRequest([ | ||
115 | + 'required params' => [ | ||
116 | + 'project' => 'integer(ID проекта)' | ||
117 | + ], | ||
118 | + 'optional params' => [ | ||
119 | + 'id_group' => 'integer(ID группы запросов)' | ||
120 | + ] | ||
121 | + ]) | ||
122 | + ->exampleResponse([ | ||
123 | + [ | ||
124 | + "id_query" => "{id}(ID запроса)", | ||
125 | + "id_group" => "{id}(ID группы запросов)", | ||
126 | + "query" => "=рюкзаки переноски для детей(Запрос)", | ||
127 | + "freq" => "50(Частота запроса)", | ||
128 | + "url" => "(URL целевой страницы)" | ||
129 | + ], | ||
130 | + [ | ||
131 | + "id_query" => "{id}(ID запроса)", | ||
132 | + "id_group" => "{id}(ID группы запросов)", | ||
133 | + "query" => "dakine кошелек(Запрос)", | ||
134 | + "freq" => "10(Частота запроса)", | ||
135 | + "url" => "(URL целевой страницы)" | ||
136 | + ] | ||
137 | + ]) | ||
138 | + ->allow(AclRoles::USER) | ||
59 | ) | 139 | ) |
60 | 140 | ||
61 | ->endpoint( | 141 | ->endpoint( |
62 | ApiEndpoint::factory('/queries_group', HttpMethods::GET, 'queriesGroupAction') | 142 | ApiEndpoint::factory('/queries_group', HttpMethods::GET, 'queriesGroupAction') |
63 | ->name('queries group') | 143 | ->name('queries group') |
64 | ->description('Список групп запросов') | 144 | ->description('Список групп запросов') |
145 | + ->exampleRequest([ | ||
146 | + 'required params' => ['project' => 'integer(ID проекта)'] | ||
147 | + ]) | ||
148 | + ->exampleResponse([ | ||
149 | + [ | ||
150 | + "id_group" => "{id}(ID группы запросов)", | ||
151 | + "group" => "head рюкзак(Название группы)" | ||
152 | + ], | ||
153 | + [ | ||
154 | + "id_group" => "{id}(ID группы запросов)", | ||
155 | + "group" => "quiksilver рюкзак(Название группы)" | ||
156 | + ] | ||
157 | + ]) | ||
65 | ->allow(AclRoles::USER) | 158 | ->allow(AclRoles::USER) |
66 | ) | 159 | ) |
67 | 160 | ||
68 | ->endpoint( | 161 | ->endpoint( |
69 | ApiEndpoint::factory('/report', HttpMethods::GET, 'reportAction') | 162 | ApiEndpoint::factory('/report', HttpMethods::GET, 'reportAction') |
70 | - ->name('report') | ||
71 | - ->description('Отчет по позициям сайта') | ||
72 | - ->allow(AclRoles::USER) | 163 | + ->name('report') |
164 | + ->description('Отчет по позициям сайта') | ||
165 | + ->exampleRequest([ | ||
166 | + 'required params' => [ | ||
167 | + 'project' => 'integer(ID проекта)' | ||
168 | + ], | ||
169 | + 'optional params' => [ | ||
170 | + 'date' => 'date(дата отчета в формате Y-m-d (например, 2010-12-31))', | ||
171 | + 'prev_date' => 'date(дата для сравнения позиции сайта в формате Y-m-d (например, 2010-12-30))' | ||
172 | + ] | ||
173 | + ]) | ||
174 | + ->exampleResponse([ | ||
175 | + "count" => "526(Количество запросов)", | ||
176 | + "top3" => "50(Запросов в ТОП 3)", | ||
177 | + "top10" => "113(Запросов в ТОП 3)", | ||
178 | + "top30" => "275(Запросов в ТОП 3)", | ||
179 | + "down" => "230(Позиций улучшилось)", | ||
180 | + "up" => "205(Позиций улучшилось)", | ||
181 | + "sengines" => [ | ||
182 | + [ | ||
183 | + "id_se" => "{id}(ID поисковой системы)", | ||
184 | + "name_se" => "Google(название поисковой системы)", | ||
185 | + "name_region" => "com.ua/Киев(название региона)" | ||
186 | + ], | ||
187 | + [ | ||
188 | + "id_se" => "{id}(ID поисковой системы)", | ||
189 | + "name_se" => "Google(название поисковой системы)", | ||
190 | + "name_region" => "com.ua(название региона)" | ||
191 | + ] | ||
192 | + ], | ||
193 | + "queries" => [ | ||
194 | + [ | ||
195 | + "id_query" => "{id}(ID запроса)", | ||
196 | + "query" => "=рюкзаки переноски для детей(запрос)", | ||
197 | + "wordstat" => "50(частота запроса)" | ||
198 | + ], | ||
199 | + [ | ||
200 | + "id_query" => "{id}(ID запроса)", | ||
201 | + "query" => "dakine кошелек(запрос)", | ||
202 | + "wordstat" => "10(частота запроса)" | ||
203 | + ] | ||
204 | + ], | ||
205 | + "positions" => [ | ||
206 | + [ | ||
207 | + "position " => "{id}(ID запроса)", | ||
208 | + "prev_position " => "=рюкзаки переноски для детей(запрос)", | ||
209 | + "change_position" => "50(частота запроса)", | ||
210 | + "url" => "50(частота запроса)" | ||
211 | + ], | ||
212 | + [ | ||
213 | + "position " => "(текущая позиция сайта)", | ||
214 | + "prev_position " => "(предыдущая позиция сайта)", | ||
215 | + "change_position" => "(изменение позиции сайта)", | ||
216 | + "url" => "(найденный URL)" | ||
217 | + ] | ||
218 | + ] | ||
219 | + ]) | ||
220 | + ->allow(AclRoles::USER) | ||
73 | ) | 221 | ) |
74 | 222 | ||
75 | ->endpoint( | 223 | ->endpoint( |
76 | ApiEndpoint::factory('/visibility', HttpMethods::GET, 'visibilityAction') | 224 | ApiEndpoint::factory('/visibility', HttpMethods::GET, 'visibilityAction') |
77 | - ->name('visibility') | ||
78 | - ->description('Данные о видимости сайта за указанный период') | ||
79 | - ->allow(AclRoles::USER) | 225 | + ->name('visibility') |
226 | + ->description('Данные о видимости сайта за указанный период') | ||
227 | + ->exampleRequest([ | ||
228 | + 'required params' => [ | ||
229 | + 'project' => 'integer(ID проекта)' | ||
230 | + ], | ||
231 | + 'optional params' => [ | ||
232 | + 'start' => 'date(начальная дата в формате Y-m-d (например, 2010-12-01))', | ||
233 | + 'end' => 'date(конечная дата в формате Y-m-d (например, 2010-12-31))', | ||
234 | + 'id_se' => 'integer(ID поисковой системы)' | ||
235 | + ] | ||
236 | + ]) | ||
237 | + ->exampleResponse([ | ||
238 | + "2017-02-13" => "0.2", | ||
239 | + "2017-02-15" => "0.2", | ||
240 | + "2017-02-20" => "0.3", | ||
241 | + "2017-02-26" => "0.3", | ||
242 | + "2017-03-06" => "0.3", | ||
243 | + "2017-03-12" => "0.2" | ||
244 | + ]) | ||
245 | + ->allow(AclRoles::USER) | ||
80 | ) | 246 | ) |
81 | ; | 247 | ; |
82 | 248 |