mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch 'onTheFly' of gitlab.com:Chill-Projet/chill-bundles into onTheFly
This commit is contained in:
commit
5b7484b1ce
@ -59,27 +59,23 @@ class ChillThirdPartyExtension extends Extension implements PrependExtensionInte
|
||||
'class' => \Chill\ThirdPartyBundle\Entity\ThirdParty::class,
|
||||
'name' => 'thirdparty',
|
||||
'base_path' => '/api/1.0/thirdparty/thirdparty',
|
||||
'base_role' => \Chill\ThirdPartyBundle\Security\Authorization\ThirdPartyVoter::class,
|
||||
//'base_role' => \Chill\ThirdPartyBundle\Security\Authorization\ThirdPartyVoter::SHOW,
|
||||
//'controller' => \Chill\ThirdPartyBundle\Controller\ThirdPartyApiController::class,
|
||||
'actions' => [
|
||||
'_index' => [
|
||||
'methods' => [
|
||||
Request::METHOD_GET => true,
|
||||
Request::METHOD_HEAD => true,
|
||||
Request::METHOD_POST => true,
|
||||
],
|
||||
],
|
||||
'_entity' => [
|
||||
'methods' => [
|
||||
Request::METHOD_GET => true,
|
||||
Request::METHOD_HEAD => true,
|
||||
Request::METHOD_POST=> true,
|
||||
Request::METHOD_POST => true,
|
||||
Request::METHOD_PUT => true,
|
||||
Request::METHOD_PATCH => true
|
||||
],
|
||||
'roles' => [
|
||||
Request::METHOD_GET => \Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter::SHOW,
|
||||
Request::METHOD_HEAD => \Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter::SHOW,
|
||||
Request::METHOD_POST => \Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter::CREATE,
|
||||
|
||||
Request::METHOD_PUT => \Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter::CREATE,
|
||||
Request::METHOD_PATCH => \Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter::CREATE
|
||||
],
|
||||
]
|
||||
]
|
||||
|
@ -60,7 +60,7 @@ class ThirdParty
|
||||
* @var string
|
||||
* @ORM\Column(name="name", type="string", length=255)
|
||||
* @Assert\Length(min="2")
|
||||
* @Groups({"read"})
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $name;
|
||||
|
||||
@ -69,6 +69,7 @@ class ThirdParty
|
||||
* @var string
|
||||
* @ORM\Column(name="name_company", type="string", length=255, nullable=true)
|
||||
* @Assert\Length(min="3")
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $nameCompany;
|
||||
|
||||
@ -77,6 +78,7 @@ class ThirdParty
|
||||
* @var string
|
||||
* @ORM\Column(name="acronym", type="string", length=64, nullable=true)
|
||||
* @Assert\Length(min="2")
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $acronym;
|
||||
|
||||
@ -94,7 +96,7 @@ class ThirdParty
|
||||
* @ORM\Column(name="types", type="json", nullable=true)
|
||||
* @Assert\Count(min=1)
|
||||
*/
|
||||
private $type;
|
||||
private $types;
|
||||
|
||||
/**
|
||||
* Contact Persons: One Institutional ThirdParty has Many Contact Persons
|
||||
@ -130,7 +132,7 @@ class ThirdParty
|
||||
* @Assert\Regex("/^([\+{1}])([0-9\s*]{4,20})$/",
|
||||
* message="Invalid phone number: it should begin with the international prefix starting with ""+"", hold only digits and be smaller than 20 characters. Ex: +33123456789"
|
||||
* )
|
||||
* @Groups({"read"})
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $telephone;
|
||||
|
||||
@ -138,7 +140,7 @@ class ThirdParty
|
||||
* @var string|null
|
||||
* @ORM\Column(name="email", type="string", length=255, nullable=true)
|
||||
* @Assert\Email(checkMX=false)
|
||||
* @Groups({"read"})
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $email;
|
||||
|
||||
@ -147,7 +149,7 @@ class ThirdParty
|
||||
* @ORM\ManyToOne(targetEntity="\Chill\MainBundle\Entity\Address",
|
||||
* cascade={"persist", "remove"})
|
||||
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
|
||||
* @Groups({"read"})
|
||||
* @Groups({"read", "write"})
|
||||
*/
|
||||
private $address;
|
||||
|
||||
@ -168,7 +170,6 @@ class ThirdParty
|
||||
* @var Collection
|
||||
* @ORM\ManyToMany(targetEntity="\Chill\MainBundle\Entity\Center")
|
||||
* @ORM\JoinTable(name="chill_3party.party_center")
|
||||
* @Assert\Count(min=1)
|
||||
*/
|
||||
private $centers;
|
||||
|
||||
@ -325,7 +326,7 @@ class ThirdParty
|
||||
* @param array|null $type
|
||||
* @return ThirdParty
|
||||
*/
|
||||
public function setType(array $type = null)
|
||||
public function setTypes(array $type = null)
|
||||
{
|
||||
// remove all keys from the input data
|
||||
$this->type = \array_values($type);
|
||||
@ -338,7 +339,7 @@ class ThirdParty
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
public function getType()
|
||||
public function getTypes()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
@ -63,6 +63,8 @@ class ThirdPartyVoter extends AbstractChillVoter implements ProvideRoleHierarchy
|
||||
if (!$user instanceof User) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
$centers = $this->authorizationHelper
|
||||
->getReachableCenters($user, new Role($attribute));
|
||||
|
@ -8,17 +8,65 @@ servers:
|
||||
- url: "/api"
|
||||
description: "Your current dev server"
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Thirdparty:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
readOnly: true
|
||||
type:
|
||||
type: string
|
||||
enum:
|
||||
- "thirdparty"
|
||||
name:
|
||||
type: string
|
||||
email:
|
||||
type: string
|
||||
telephone:
|
||||
type: string
|
||||
comment:
|
||||
type: string
|
||||
# centers:
|
||||
# type: array
|
||||
# items:
|
||||
# type: object
|
||||
# $ref: "#/components/schemas/CenterById"
|
||||
# CenterById:
|
||||
# type: object
|
||||
# properties:
|
||||
# type:
|
||||
# type: string
|
||||
# enum:
|
||||
# - "Center"
|
||||
# id:
|
||||
# type: integer
|
||||
|
||||
paths:
|
||||
/1.0/thirdparty/thirdparty.json:
|
||||
get:
|
||||
post:
|
||||
tags:
|
||||
- thirdparty
|
||||
summary: Return a list of all thirdparty items
|
||||
summary: Create a single thirdparty
|
||||
requestBody:
|
||||
description: "A thirdparty"
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Thirdparty"
|
||||
responses:
|
||||
200:
|
||||
description: "ok"
|
||||
401:
|
||||
description: "OK"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Thirdparty"
|
||||
403:
|
||||
description: "Unauthorized"
|
||||
422:
|
||||
description: "Invalid data"
|
||||
|
||||
/1.0/thirdparty/thirdparty/{id}.json:
|
||||
get:
|
||||
@ -41,3 +89,62 @@ paths:
|
||||
description: "not found"
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
patch:
|
||||
tags:
|
||||
- thirdparty
|
||||
summary: "Alter a thirdparty"
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: The thirdparty's id
|
||||
schema:
|
||||
type: integer
|
||||
format: integer
|
||||
minimum: 1
|
||||
requestBody:
|
||||
description: "A thirdparty"
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Thirdparty"
|
||||
responses:
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
404:
|
||||
description: "Not found"
|
||||
200:
|
||||
description: "OK"
|
||||
422:
|
||||
description: "Object with validation errors"
|
||||
put:
|
||||
tags:
|
||||
- thirdparty
|
||||
summary: Edit an existing thirdparty
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
description: The thirdparty's id
|
||||
schema:
|
||||
type: integer
|
||||
format: integer
|
||||
minimum: 1
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Thirdparty"
|
||||
responses:
|
||||
401:
|
||||
description: "Unauthorized"
|
||||
404:
|
||||
description: "Not found"
|
||||
200:
|
||||
description: "OK"
|
||||
422:
|
||||
description: "Unprocessable entity (validation errors)"
|
||||
400:
|
||||
description: "Bad Request"
|
||||
|
Loading…
x
Reference in New Issue
Block a user