Struct Types
Squashed commit of the following: commit 74ed84617fcbecf661695763323e50d049a88db7 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:46:29 2018 +0000 Test passes so remove the dump statement commit a7d3323be02da64f76e8ec88713e3de84a13ded7 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:40:35 2018 +0000 Values with spaces need to be quoted commit 58a120bb238f14346793c388b948b7351d3b51fd Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:37:23 2018 +0000 We need a diplay name for the tests to work now we are using strict type checking commit b46f177053bd697db9a4835d073f2f37e088b26f Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:31:29 2018 +0000 Get travis to show more info about failing test commit 60323f3ce5a0561329a1721ee94821571cdcc86a Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:23:27 2018 +0000 Remove un-used namnepsace imports commit 096d3505920bc94ff8677c77430eca0aae0be58a Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:21:55 2018 +0000 we need php7.2 for object type-hint commit bb818bc19c73d02d510af9f002199f5718a54608 Author: Jonny Barnes <jonny@jonnybarnes.uk> Date: Mon Jan 15 12:15:48 2018 +0000 Added lots of strict_types
This commit is contained in:
parent
053e19a457
commit
e4fe2ecde3
64 changed files with 911 additions and 406 deletions
|
@ -1,11 +1,18 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Note;
|
||||
|
||||
class ActivityStreamsService
|
||||
{
|
||||
/**
|
||||
* Return the relevant data to an AS2.0 request to the root path.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function siteOwnerResponse()
|
||||
{
|
||||
$data = json_encode([
|
||||
|
@ -19,6 +26,12 @@ class ActivityStreamsService
|
|||
return response($data)->header('Content-Type', 'application/activity+json');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the relevant data to an AS2.0 request for a particular note.
|
||||
*
|
||||
* @param \App\Models\Note $note
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function singleNoteResponse(Note $note)
|
||||
{
|
||||
$data = json_encode([
|
||||
|
|
|
@ -20,7 +20,7 @@ class BookmarkService
|
|||
/**
|
||||
* Create a new Bookmark.
|
||||
*
|
||||
* @param array $request
|
||||
* @param array $request Data from request()->all()
|
||||
* @return Bookmark $bookmark
|
||||
*/
|
||||
public function createBookmark(array $request): Bookmark
|
||||
|
@ -84,6 +84,12 @@ class BookmarkService
|
|||
return $bookmark;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a URL, use browsershot to save an image of the page.
|
||||
*
|
||||
* @param string $url
|
||||
* @return string The uuid for the screenshot
|
||||
*/
|
||||
public function saveScreenshot(string $url): string
|
||||
{
|
||||
$browsershot = new Browsershot();
|
||||
|
@ -99,6 +105,12 @@ class BookmarkService
|
|||
return $uuid->toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a URL, attempt to save it to the Internet Archive.
|
||||
*
|
||||
* @param string $url
|
||||
* @return string
|
||||
*/
|
||||
public function getArchiveLink(string $url): string
|
||||
{
|
||||
$client = resolve(Client::class);
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\Micropub;
|
||||
|
||||
use App\Services\PlaceService;
|
||||
|
||||
class HCardService
|
||||
{
|
||||
public function process(array $request)
|
||||
/**
|
||||
* Create a Place from h-card data, return the URL.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string
|
||||
*/
|
||||
public function process(array $request): string
|
||||
{
|
||||
$data = [];
|
||||
if (array_get($request, 'properties.name')) {
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\Micropub;
|
||||
|
||||
use App\Services\{BookmarkService, LikeService, NoteService};
|
||||
|
||||
class HEntryService
|
||||
{
|
||||
public function process(array $request, string $client = null)
|
||||
/**
|
||||
* Create the relavent model from some h-entry data.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @param string|null $client The micropub client that made the request
|
||||
* @return string|null
|
||||
*/
|
||||
public function process(array $request, ?string $client = null): ?string
|
||||
{
|
||||
if (array_get($request, 'properties.like-of') || array_get($request, 'like-of')) {
|
||||
$like = resolve(LikeService::class)->createLike($request);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\Micropub;
|
||||
|
||||
use App\Models\{Media, Note};
|
||||
|
@ -7,6 +9,12 @@ use Illuminate\Database\Eloquent\ModelNotFoundException;
|
|||
|
||||
class UpdateService
|
||||
{
|
||||
/**
|
||||
* Process a micropub request to update an entry.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function process(array $request)
|
||||
{
|
||||
$urlPath = parse_url(array_get($request, 'url'), PHP_URL_PATH);
|
||||
|
|
|
@ -12,11 +12,11 @@ class NoteService
|
|||
/**
|
||||
* Create a new note.
|
||||
*
|
||||
* @param array $request
|
||||
* @param string $client
|
||||
* @return \App\Note $note
|
||||
* @param array $request Data from request()->all()
|
||||
* @param string $client
|
||||
* @return \App\Note
|
||||
*/
|
||||
public function createNote(array $request, string $client = null): Note
|
||||
public function createNote(array $request, ?string $client = null): Note
|
||||
{
|
||||
$note = Note::create(
|
||||
[
|
||||
|
@ -60,6 +60,12 @@ class NoteService
|
|||
return $note;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the content from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getContent(array $request): ?string
|
||||
{
|
||||
if (array_get($request, 'properties.content.0.html')) {
|
||||
|
@ -72,6 +78,12 @@ class NoteService
|
|||
return array_get($request, 'content');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the in-reply-to from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getInReplyTo(array $request): ?string
|
||||
{
|
||||
if (array_get($request, 'properties.in-reply-to.0')) {
|
||||
|
@ -81,6 +93,12 @@ class NoteService
|
|||
return array_get($request, 'in-reply-to');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the published time from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getPublished(array $request): ?string
|
||||
{
|
||||
if (array_get($request, 'properties.published.0')) {
|
||||
|
@ -94,6 +112,12 @@ class NoteService
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the location data from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getLocation(array $request): ?string
|
||||
{
|
||||
$location = array_get($request, 'properties.location.0') ?? array_get($request, 'location');
|
||||
|
@ -110,6 +134,12 @@ class NoteService
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the checkin data from the request to create a new note. This will be a Place.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return \App\Models\Place|null
|
||||
*/
|
||||
private function getCheckin(array $request): ?Place
|
||||
{
|
||||
if (array_get($request, 'properties.location.0.type.0') === 'h-card') {
|
||||
|
@ -149,6 +179,12 @@ class NoteService
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Swarm URL from the syndication data in the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getSwarmUrl(array $request): ?string
|
||||
{
|
||||
if (stristr(array_get($request, 'properties.syndication.0', ''), 'swarmapp')) {
|
||||
|
@ -158,6 +194,12 @@ class NoteService
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the syndication targets from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return array
|
||||
*/
|
||||
private function getSyndicationTargets(array $request): array
|
||||
{
|
||||
$syndication = [];
|
||||
|
@ -187,6 +229,12 @@ class NoteService
|
|||
return $syndication;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the media URLs from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return array
|
||||
*/
|
||||
private function getMedia(array $request): array
|
||||
{
|
||||
$media = [];
|
||||
|
@ -211,6 +259,12 @@ class NoteService
|
|||
return $media;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Instagram photo URL from the request to create a new note.
|
||||
*
|
||||
* @param array $request Data from request()->all()
|
||||
* @return string|null
|
||||
*/
|
||||
private function getInstagramUrl(array $request): ?string
|
||||
{
|
||||
if (starts_with(array_get($request, 'properties.syndication.0'), 'https://www.instagram.com')) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue