swagger project list
This commit is contained in:
parent
5ea572e698
commit
ea7c781d06
@ -43,10 +43,45 @@ class ProjectController extends ApiController
|
|||||||
return Project::findOne($project_id);
|
return Project::findOne($project_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function actionProjectList($card_id = null): ActiveDataProvider
|
/**
|
||||||
|
*
|
||||||
|
* @OA\Get(path="/project/project-list",
|
||||||
|
* summary="Список проектов",
|
||||||
|
* description="Метод для получения списка проетов, если не передан параметр user_id, то возвращаются проеты текущего пользователя.",
|
||||||
|
* security={
|
||||||
|
* {"bearerAuth": {}}
|
||||||
|
* },
|
||||||
|
* tags={"TaskManager"},
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="user_id",
|
||||||
|
* in="query",
|
||||||
|
* required=false,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="integer",
|
||||||
|
* default=null
|
||||||
|
* )
|
||||||
|
* ),
|
||||||
|
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Возвращает массив объектов проекта",
|
||||||
|
* @OA\MediaType(
|
||||||
|
* mediaType="application/json",
|
||||||
|
* @OA\Schema(ref="#/components/schemas/ProjectExample"),
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
* @param $user_id
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function actionProjectList($user_id = null): ActiveDataProvider
|
||||||
{
|
{
|
||||||
if (!empty($card_id)) {
|
if (!$user_id){
|
||||||
$projectIdList = ProjectUser::find()->where(['card_id' => $card_id])->select('project_id')->column();
|
$user_id = Yii::$app->user->id;
|
||||||
|
}
|
||||||
|
if (!empty($user_id)) {
|
||||||
|
$projectIdList = ProjectUser::find()->where(['user_id' => $user_id])->select('project_id')->column();
|
||||||
$query = Project::find()->where([ 'IN', 'id', $projectIdList]);
|
$query = Project::find()->where([ 'IN', 'id', $projectIdList]);
|
||||||
} else {
|
} else {
|
||||||
$query = Project::find();
|
$query = Project::find();
|
||||||
|
@ -2,6 +2,52 @@
|
|||||||
|
|
||||||
namespace frontend\modules\api\models;
|
namespace frontend\modules\api\models;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="Company",
|
||||||
|
* @OA\Property(
|
||||||
|
* property="id",
|
||||||
|
* type="int",
|
||||||
|
* example=1,
|
||||||
|
* description="Идентификатор компании"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="name",
|
||||||
|
* type="string",
|
||||||
|
* example="OhDesign",
|
||||||
|
* description="Название компании"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="description",
|
||||||
|
* type="string",
|
||||||
|
* example="Компания разрабатывает сайт для дизайнеров",
|
||||||
|
* description="Описание компании"
|
||||||
|
* ),
|
||||||
|
*)
|
||||||
|
*
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="CompanyExample",
|
||||||
|
* type="array",
|
||||||
|
* example={{"id": 1, "name": "GoDesigner", "description": "Сайт для дизайнеров"}, {"id": 2, "name": "PR Holding", "description": "Сайт для маркетологов"}},
|
||||||
|
* @OA\Items(
|
||||||
|
* type="object",
|
||||||
|
* @OA\Property(
|
||||||
|
* property="id",
|
||||||
|
* type="integer",
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="name",
|
||||||
|
* type="string",
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="description",
|
||||||
|
* type="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
*)
|
||||||
|
*
|
||||||
|
*/
|
||||||
class Company extends \common\models\Company
|
class Company extends \common\models\Company
|
||||||
{
|
{
|
||||||
public function fields()
|
public function fields()
|
||||||
|
@ -7,14 +7,81 @@ use yii\helpers\Url;
|
|||||||
use yii\web\Link;
|
use yii\web\Link;
|
||||||
use yii\web\Linkable;
|
use yii\web\Linkable;
|
||||||
|
|
||||||
class Project extends \common\models\Project implements Linkable
|
/**
|
||||||
|
*
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="Project",
|
||||||
|
* @OA\Property(
|
||||||
|
* property="id",
|
||||||
|
* type="int",
|
||||||
|
* example=1,
|
||||||
|
* description="Идентификатор проекта"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="name",
|
||||||
|
* type="string",
|
||||||
|
* example="PHP",
|
||||||
|
* description="Название проекта"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="status",
|
||||||
|
* type="int",
|
||||||
|
* example="10",
|
||||||
|
* description="Статус проекта"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="hh_id",
|
||||||
|
* type="int",
|
||||||
|
* example="234",
|
||||||
|
* description="Идентификатор проекта на hh.ru"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="company",
|
||||||
|
* ref="#/components/schemas/Company",
|
||||||
|
* ),
|
||||||
|
*)
|
||||||
|
*
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="ProjectExample",
|
||||||
|
* type="array",
|
||||||
|
* @OA\Items(
|
||||||
|
* type="object",
|
||||||
|
* @OA\Property(
|
||||||
|
* property="id",
|
||||||
|
* type="integer",
|
||||||
|
* example="1"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="name",
|
||||||
|
* type="string",
|
||||||
|
* example="OhDesign - backend"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="status",
|
||||||
|
* type="integer",
|
||||||
|
* example="10"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="hh_id",
|
||||||
|
* type="integer",
|
||||||
|
* example="345343434"
|
||||||
|
* ),
|
||||||
|
* @OA\Property(
|
||||||
|
* property="company",
|
||||||
|
* ref="#/components/schemas/Company",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
*)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class Project extends \common\models\Project
|
||||||
{
|
{
|
||||||
public function fields(): array
|
public function fields(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id',
|
'id',
|
||||||
'name',
|
'name',
|
||||||
'budget',
|
//'budget',
|
||||||
'status',
|
'status',
|
||||||
'hh_id' => function() {
|
'hh_id' => function() {
|
||||||
return $this->hh;
|
return $this->hh;
|
||||||
|
Loading…
Reference in New Issue
Block a user