Fix OwnYourSwarm checkin parsing to read from properties.checkin

Real OwnYourSwarm requests send the checkin h-card inside
properties.checkin (as an array), not at the top level. The code
was reading from the top-level key so no Place was ever created,
leaving checkin notes blank.

Update tests to match the real request format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jonny Barnes 2026-03-14 19:18:00 +00:00
commit 4451fc247e
Signed by: jonny
SSH key fingerprint: SHA256:CTuSlns5U7qlD9jqHvtnVmfYV3Zwl2Z7WnJ4/dqOaL8
2 changed files with 87 additions and 87 deletions

View file

@ -37,15 +37,15 @@ class SwarmTest extends TestCase
'value' => 'My first #checkin using Example Product',
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
]],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -64,7 +64,7 @@ class SwarmTest extends TestCase
}
/**
* This request would actually come from another client than OwnYourSwarm, but were testing
* This request would actually come from another client than OwnYourSwarm, but we're testing
* OpenStreetMap data.
*/
#[Test]
@ -83,15 +83,15 @@ class SwarmTest extends TestCase
'value' => 'My first #checkin using Example Product',
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
]],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://www.openstreetmap.org/way/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://www.openstreetmap.org/way/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -125,15 +125,15 @@ class SwarmTest extends TestCase
'value' => 'My first #checkin using Example Product',
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
]],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://www.example.org/way/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://www.example.org/way/123456'],
'latitude' => ['1.23'],
'longitude' => ['4.56'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -159,15 +159,15 @@ class SwarmTest extends TestCase
'properties' => [
'published' => [Carbon::now()->toDateTimeString()],
'syndication' => ['https://www.swarmapp.com/checkin/def'],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesomer Venue'],
'url' => ['https://foursquare.com/v/654321'],
'latitude' => ['3.21'],
'longitude' => ['6.54'],
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesomer Venue'],
'url' => ['https://foursquare.com/v/654321'],
'latitude' => ['3.21'],
'longitude' => ['6.54'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -202,13 +202,13 @@ class SwarmTest extends TestCase
'value' => 'My first #checkin using Example Product',
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
]],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -240,21 +240,21 @@ class SwarmTest extends TestCase
'value' => 'My first #checkin using Example Product',
'html' => 'My first #checkin using <a href="http://example.org">Example Product</a>',
]],
],
'location' => [
'type' => ['h-adr'],
'properties' => [
'latitude' => ['1.23'],
'longitude' => ['4.56'],
'street-address' => ['Awesome Street'],
],
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
],
'location' => [[
'type' => ['h-adr'],
'properties' => [
'latitude' => ['1.23'],
'longitude' => ['4.56'],
'street-address' => ['Awesome Street'],
],
]],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Awesome Venue'],
'url' => ['https://foursquare.com/v/123456'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
@ -279,34 +279,34 @@ class SwarmTest extends TestCase
'type' => ['h-entry'],
'properties' => [
'published' => [Carbon::now()->toDateTimeString()],
],
'syndication' => [
'https://www.swarmapp.com/user/199841/checkin/5c4b1ac56dcf04002c0a4f58',
],
'checkin' => [
'type' => ['h-card'],
'properties' => [
'name' => ['Forbidden Planet'],
'url' => ['https://foursquare.com/v/4ade0e46f964a520bf6f21e3'],
'latitude' => [53.483153021713],
'longitude' => [-2.2350297792539],
'street-address' => ['65 Oldham St.'],
'locality' => ['Manchester'],
'country-name' => ['United Kingdom'],
'postal-code' => ['M1 1JR'],
],
'value' => 'https://foursquare.com/v/4ade0e46f964a520bf6f21e3',
],
'location' => [
'type' => ['h-adr'],
'properties' => [
'latitude' => [53.483153021713],
'longitude' => [-2.2350297792539],
'street-address' => ['65 Oldham St.'],
'locality' => ['Manchester'],
'country-name' => ['United Kingdom'],
'postal-code' => ['M1 1JR'],
'syndication' => [
'https://www.swarmapp.com/user/199841/checkin/5c4b1ac56dcf04002c0a4f58',
],
'checkin' => [[
'type' => ['h-card'],
'properties' => [
'name' => ['Forbidden Planet'],
'url' => ['https://foursquare.com/v/4ade0e46f964a520bf6f21e3'],
'latitude' => [53.483153021713],
'longitude' => [-2.2350297792539],
'street-address' => ['65 Oldham St.'],
'locality' => ['Manchester'],
'country-name' => ['United Kingdom'],
'postal-code' => ['M1 1JR'],
],
'value' => 'https://foursquare.com/v/4ade0e46f964a520bf6f21e3',
]],
'location' => [[
'type' => ['h-adr'],
'properties' => [
'latitude' => [53.483153021713],
'longitude' => [-2.2350297792539],
'street-address' => ['65 Oldham St.'],
'locality' => ['Manchester'],
'country-name' => ['United Kingdom'],
'postal-code' => ['M1 1JR'],
],
]],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]