Expose visitedUrl when serializing any kind of visit, not only orphan visits

This commit is contained in:
Alejandro Celaya 2024-03-24 17:20:41 +01:00
parent d948543d5c
commit 6fe269193a
10 changed files with 40 additions and 25 deletions

View file

@ -232,6 +232,11 @@
"potentialBot": {
"type": "boolean",
"description": "Tells if Shlink thinks this visit comes potentially from a bot or crawler"
},
"visitedUrl": {
"type": "string",
"nullable": true,
"description": "The originally visited URL that triggered the tracking of this visit"
}
},
"example": {
@ -247,7 +252,8 @@
"regionName": "California",
"timezone": "America/Los_Angeles"
},
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
}
},
"OrphanVisit": {
@ -256,11 +262,6 @@
{
"type": "object",
"properties": {
"visitedUrl": {
"type": "string",
"nullable": true,
"description": "The originally visited URL that triggered the tracking of this visit"
},
"type": {
"type": "string",
"enum": [

View file

@ -1,14 +1,10 @@
{
"type": "object",
"required": ["visitedUrl", "type"],
"required": ["type"],
"allOf": [{
"$ref": "./Visit.json"
}],
"properties": {
"visitedUrl": {
"type": ["string", "null"],
"description": "The originally visited URL that triggered the tracking of this visit"
},
"type": {
"type": "string",
"enum": [

View file

@ -1,6 +1,6 @@
{
"type": "object",
"required": ["referer", "date", "userAgent", "visitLocation"],
"required": ["referer", "date", "userAgent", "visitLocation", "potentialBot", "visitedUrl"],
"properties": {
"referer": {
"type": "string",
@ -21,6 +21,10 @@
"potentialBot": {
"type": "boolean",
"description": "Tells if Shlink thinks this visit comes potentially from a bot or crawler"
},
"visitedUrl": {
"type": ["string", "null"],
"description": "The originally visited URL that triggered the tracking of this visit"
}
}
}

View file

@ -100,7 +100,8 @@
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
"visitLocation": null,
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": "https://t.co",
@ -115,14 +116,16 @@
"regionName": "California",
"timezone": "America/Los_Angeles"
},
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": null,
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "some_web_crawler/1.4",
"visitLocation": null,
"potentialBot": true
"potentialBot": true,
"visitedUrl": "https://s.test"
}
],
"pagination": {

View file

@ -103,7 +103,8 @@
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
"visitLocation": null,
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": "https://t.co",
@ -118,14 +119,16 @@
"regionName": "California",
"timezone": "America/Los_Angeles"
},
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": null,
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "some_web_crawler/1.4",
"visitLocation": null,
"potentialBot": true
"potentialBot": true,
"visitedUrl": "https://s.test"
}
],
"pagination": {

View file

@ -103,7 +103,8 @@
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
"visitLocation": null,
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": "https://t.co",
@ -118,14 +119,16 @@
"regionName": "California",
"timezone": "America/Los_Angeles"
},
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": null,
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "some_web_crawler/1.4",
"visitLocation": null,
"potentialBot": true
"potentialBot": true,
"visitedUrl": "https://s.test"
}
],
"pagination": {

View file

@ -94,7 +94,8 @@
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0",
"visitLocation": null,
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": "https://t.co",
@ -109,14 +110,16 @@
"regionName": "California",
"timezone": "America/Los_Angeles"
},
"potentialBot": false
"potentialBot": false,
"visitedUrl": "https://s.test"
},
{
"referer": null,
"date": "2015-08-20T05:05:03+04:00",
"userAgent": "some_web_crawler/1.4",
"visitLocation": null,
"potentialBot": true
"potentialBot": true,
"visitedUrl": "https://s.test"
}
],
"pagination": {

View file

@ -163,6 +163,7 @@ class Visit extends AbstractEntity implements JsonSerializable
'userAgent' => $this->userAgent,
'visitLocation' => $this->visitLocation,
'potentialBot' => $this->potentialBot,
'visitedUrl' => $this->visitedUrl,
];
if (! $this->isOrphan()) {
return $base;
@ -170,7 +171,6 @@ class Visit extends AbstractEntity implements JsonSerializable
return [
...$base,
'visitedUrl' => $this->visitedUrl,
'type' => $this->type->value,
];
}

View file

@ -68,6 +68,7 @@ class PublishingUpdatesGeneratorTest extends TestCase
'visitLocation' => null,
'date' => $visit->getDate()->toAtomString(),
'potentialBot' => false,
'visitedUrl' => '',
],
], $update->payload);
}

View file

@ -30,6 +30,7 @@ class VisitTest extends TestCase
'userAgent' => $userAgent,
'visitLocation' => null,
'potentialBot' => $expectedToBePotentialBot,
'visitedUrl' => $visit->visitedUrl,
], $visit->jsonSerialize());
}