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);
|
||||
}
|
||||
|
||||
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)) {
|
||||
$projectIdList = ProjectUser::find()->where(['card_id' => $card_id])->select('project_id')->column();
|
||||
if (!$user_id){
|
||||
$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]);
|
||||
} else {
|
||||
$query = Project::find();
|
||||
|
@ -2,6 +2,52 @@
|
||||
|
||||
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
|
||||
{
|
||||
public function fields()
|
||||
|
@ -7,14 +7,81 @@ use yii\helpers\Url;
|
||||
use yii\web\Link;
|
||||
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
|
||||
{
|
||||
return [
|
||||
'id',
|
||||
'name',
|
||||
'budget',
|
||||
//'budget',
|
||||
'status',
|
||||
'hh_id' => function() {
|
||||
return $this->hh;
|
||||
|
Loading…
Reference in New Issue
Block a user