diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location.vue index de6ce961d..542d08d1a 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location.vue @@ -71,20 +71,19 @@ export default { }, saveNewLocation(selected) { console.log('saveNewLocation', selected); - console.log('post location') let body = { type: 'location', name: selected.name, address: { id: selected.addressId }, - locationtype: { id: selected.type }, + locationType: { id: selected.type, type: 'location-type' }, email: selected.email, phonenumber1: selected.phonenumber1, phonenumber2: selected.phonenumber2, } - //this.$store.dispatch('addLocationSelected', body); postLocation(body).then(location => new Promise(resolve => { + console.log('postLocation', location); this.locations.push(location); - this.location.set(location); + this.$store.dispatch('updateLocation', location); resolve(); })); } diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location/NewLocation.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location/NewLocation.vue index 341255136..1260e2e1c 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location/NewLocation.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/Location/NewLocation.vue @@ -55,7 +55,10 @@ diff --git a/src/Bundle/ChillMainBundle/Entity/Location.php b/src/Bundle/ChillMainBundle/Entity/Location.php index 2a88a4ae5..be97a4373 100644 --- a/src/Bundle/ChillMainBundle/Entity/Location.php +++ b/src/Bundle/ChillMainBundle/Entity/Location.php @@ -31,26 +31,26 @@ class Location implements TrackCreationInterface, TrackUpdateInterface /** * @ORM\ManyToOne(targetEntity=LocationType::class) * @ORM\JoinColumn(nullable=false) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) */ private ?LocationType $locationType = null; /** - * @ORM\OneToOne(targetEntity=Address::class, cascade={"persist", "remove"}) + * @ORM\ManyToOne(targetEntity=Address::class, cascade={"persist"}) * @ORM\JoinColumn(nullable=true) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) */ private ?Address $address = null; /** * @ORM\Column(type="string", length=255, nullable=true) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) */ private ?string $name = null; /** * @ORM\Column(type="string", length=64, nullable=true) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) * @Assert\Regex(pattern="/^([\+{1}])([0-9\s*]{4,20})$/") * @PhonenumberConstraint(type="any") */ @@ -58,7 +58,7 @@ class Location implements TrackCreationInterface, TrackUpdateInterface /** * @ORM\Column(type="string", length=64, nullable=true) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) * @Assert\Regex(pattern="/^([\+{1}])([0-9\s*]{4,20})$/") * @PhonenumberConstraint(type="any") */ @@ -66,7 +66,7 @@ class Location implements TrackCreationInterface, TrackUpdateInterface /** * @ORM\Column(type="string", length=255, nullable=true) - * @Serializer\Groups({"read"}) + * @Serializer\Groups({"read", "write"}) */ private ?string $email = null; diff --git a/src/Bundle/ChillMainBundle/chill.api.specs.yaml b/src/Bundle/ChillMainBundle/chill.api.specs.yaml index 7c9a5aa56..8252502ba 100644 --- a/src/Bundle/ChillMainBundle/chill.api.specs.yaml +++ b/src/Bundle/ChillMainBundle/chill.api.specs.yaml @@ -564,21 +564,23 @@ paths: name: type: string phonenumber1: - type: string + type: string phonenumber2: - type: string + type: string email: - type: string + type: string address: type: object properties: id: type: integer - locationtype: + locationType: type: object properties: id: type: integer + type: + type: string responses: 401: description: "Unauthorized" @@ -591,6 +593,26 @@ paths: 400: description: "transition cannot be applyed" + /1.0/main/location/{id}.json: + get: + tags: + - location + summary: Return the given location + parameters: + - name: id + in: path + required: true + description: The location id + schema: + type: integer + format: integer + minimum: 1 + responses: + 200: + description: "ok" + 401: + description: "Unauthorized" + /1.0/main/location-type.json: get: tags: diff --git a/src/Bundle/ChillMainBundle/migrations/Version20211015084653.php b/src/Bundle/ChillMainBundle/migrations/Version20211015084653.php new file mode 100644 index 000000000..12b230f10 --- /dev/null +++ b/src/Bundle/ChillMainBundle/migrations/Version20211015084653.php @@ -0,0 +1,28 @@ +addSql('DROP INDEX uniq_90e4736af5b7af75'); + $this->addSql('CREATE INDEX IDX_90E4736AF5B7AF75 ON chill_main_location (address_id)'); + } + + public function down(Schema $schema): void + { + $this->addSql('DROP INDEX IDX_90E4736AF5B7AF75'); + $this->addSql('CREATE UNIQUE INDEX uniq_90e4736af5b7af75 ON chill_main_location (address_id)'); + } +}