commit 420c42fbe62c8bc5173561979fa07371d0c0a16a Author: smarcet Date: Fri Oct 16 12:01:23 2020 -0300 Added Location field to summit metric Change-Id: Ib8c9f96437e2414ce4d46714f8724330de2dbfc5 Signed-off-by: smarcet diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitMetricsApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitMetricsApiController.php index f627312..64bcc8a 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitMetricsApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitMetricsApiController.php @@ -85,6 +85,7 @@ final class OAuth2SummitMetricsApiController extends OAuth2ProtectedController [ 'type' => 'required|string|in:'.implode(",", ISummitMetricType::ValidTypes), 'source_id' => 'sometimes|integer', + 'location' => 'sometimes|string', ]); if ($validation->fails()) { @@ -142,7 +143,7 @@ final class OAuth2SummitMetricsApiController extends OAuth2ProtectedController [ 'type' => 'required|string|in:'.implode(",", ISummitMetricType::ValidTypes), 'source_id' => 'sometimes|integer', - + 'location' => 'sometimes|string', ]); if ($validation->fails()) { diff --git a/app/Models/Foundation/Summit/Factories/SummitMetricFactory.php b/app/Models/Foundation/Summit/Factories/SummitMetricFactory.php index 9f19713..53b0c22 100644 --- a/app/Models/Foundation/Summit/Factories/SummitMetricFactory.php +++ b/app/Models/Foundation/Summit/Factories/SummitMetricFactory.php @@ -58,6 +58,8 @@ final class SummitMetricFactory public static function populate(SummitMetric $metric, array $data):SummitMetric{ if(isset($data['type'])) $metric->setType($data['type']); + if(isset($data['location'])) + $metric->setLocation(urldecode($data['location'])); return $metric; } } \ No newline at end of file diff --git a/app/Models/Foundation/Summit/Metrics/SummitMetric.php b/app/Models/Foundation/Summit/Metrics/SummitMetric.php index 6e071f6..5c49a16 100644 --- a/app/Models/Foundation/Summit/Metrics/SummitMetric.php +++ b/app/Models/Foundation/Summit/Metrics/SummitMetric.php @@ -70,6 +70,12 @@ class SummitMetric extends SilverstripeBaseModel protected $origin; /** + * @ORM\Column(name="Location", type="string") + * @var string|null + */ + protected $location; + + /** * @ORM\Column(name="Browser", type="string") * @var string|null */ @@ -231,4 +237,21 @@ class SummitMetric extends SilverstripeBaseModel { return $this->browser; } + + /** + * @return string|null + */ + public function getLocation(): ?string + { + return $this->location; + } + + /** + * @param string|null $location + */ + public function setLocation(?string $location): void + { + $this->location = $location; + } + } \ No newline at end of file diff --git a/database/migrations/model/Version20201016145706.php b/database/migrations/model/Version20201016145706.php new file mode 100644 index 0000000..176fe3a --- /dev/null +++ b/database/migrations/model/Version20201016145706.php @@ -0,0 +1,49 @@ +hasTable("SummitMetric") && !$builder->hasColumn("SummitMetric","Location") ) { + $builder->table('SummitMetric', function (Table $table) { + $table->text('Location')->setDefault(null)->setNotnull(false); + }); + } + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + $builder = new Builder($schema); + if($schema->hasTable("SummitMetric") && $builder->hasColumn("SummitMetric","Location") ) { + $builder->table('SummitMetric', function (Table $table) { + $table->dropColumn('Location'); + }); + } + } +}