Squashed commit of the following:
commit 41ab44ed1d86a1d0788089cf2d79e3c9ab8e2ba6 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Wed Aug 9 20:58:13 2017 +0100 Add a test for a swarm checkin with no text commit b4986ba3207374d11438e00d05a6f1ae1720bd49 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Wed Aug 9 20:57:44 2017 +0100 A migration that makes the note column of the notes table nullable commit 80ac4d38c992e59733f60e844f376e36507fb8ee Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Wed Aug 9 20:57:04 2017 +0100 Don’t fail when the text content of a note is empty commit 874acdd3b31028c06d19cdbe9ef34bbc9660a704 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Wed Aug 9 20:55:12 2017 +0100 Allow no content for the actual note, maybe its just a picture. Also provide some context for swarm checkins
This commit is contained in:
parent
d28df644bc
commit
e3fff4b9a8
4 changed files with 75 additions and 1 deletions
|
@ -104,6 +104,9 @@ class SendWebMentions implements ShouldQueue
|
|||
*/
|
||||
public function getLinks($html)
|
||||
{
|
||||
if ($html == '' || is_null($html)) {
|
||||
return [];
|
||||
}
|
||||
$urls = [];
|
||||
$dom = new \DOMDocument();
|
||||
$dom->loadHTML($html);
|
||||
|
|
|
@ -20,7 +20,7 @@ class NoteService
|
|||
|
||||
//check the input
|
||||
if (array_key_exists('content', $data) === false) {
|
||||
throw new \Exception('No content defined'); //we can’t fudge the data
|
||||
$data['content'] = null;
|
||||
}
|
||||
if (array_key_exists('in-reply-to', $data) === false) {
|
||||
$data['in-reply-to'] = null;
|
||||
|
@ -64,6 +64,9 @@ class NoteService
|
|||
if ($place !== null) {
|
||||
$note->place()->associate($place);
|
||||
$note->swarm_url = $data['swarm-url'];
|
||||
if ($note->note === null || $note->note == '') {
|
||||
$note->note = 'I’ve just checked in with Swarm';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AllowEmptyNoteContent extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('notes', function (Blueprint $table) {
|
||||
DB::statement('ALTER TABLE notes ALTER note DROP NOT NULL');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('notes', function (Blueprint $table) {
|
||||
// we don’t reverse this because we can’t know if there
|
||||
// are NULL entries, in which case SET NOT NULL will fail
|
||||
});
|
||||
}
|
||||
}
|
|
@ -51,6 +51,40 @@ class SwarmTest extends TestCase
|
|||
]);
|
||||
}
|
||||
|
||||
public function test_faked_ownyourswarm_request_with_no_text_content()
|
||||
{
|
||||
$response = $this->json(
|
||||
'POST',
|
||||
'api/post',
|
||||
[
|
||||
'type' => ['h-entry'],
|
||||
'properties' => [
|
||||
'published' => [\Carbon\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'],
|
||||
],
|
||||
]],
|
||||
],
|
||||
],
|
||||
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
|
||||
);
|
||||
$response
|
||||
->assertStatus(201)
|
||||
->assertJson(['response' => 'created']);
|
||||
$this->assertDatabaseHas('places', [
|
||||
'external_urls' => '{"foursquare": "https://foursquare.com/v/654321"}'
|
||||
]);
|
||||
$this->assertDatabaseHas('notes', [
|
||||
'swarm_url' => 'https://www.swarmapp.com/checkin/def'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a valid token to be used in the tests.
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue