[COMPONENT][Posting] Add storeLocalPage
Minor refactoring and bug fixing
This commit is contained in:
parent
2d5fac7a89
commit
cee2d143c9
|
@ -27,6 +27,7 @@ use App\Core\ActorLocalRoles;
|
|||
use App\Core\Controller;
|
||||
use App\Core\Event;
|
||||
use App\Core\Form;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use function App\Core\I18n\_m;
|
||||
use App\Core\Router\Router;
|
||||
use App\Core\VisibilityScope;
|
||||
|
@ -138,7 +139,7 @@ class Post extends Controller
|
|||
$extra_args = [];
|
||||
Event::handle('AddExtraArgsToNoteContent', [$request, $actor, $data, &$extra_args, $form_params, $form]);
|
||||
|
||||
Posting::storeLocalNote(
|
||||
$note = Posting::storeLocalPage(
|
||||
actor: $actor,
|
||||
content: $data['content'],
|
||||
content_type: $content_type,
|
||||
|
@ -150,19 +151,7 @@ class Post extends Controller
|
|||
process_note_content_extra_args: $extra_args,
|
||||
);
|
||||
|
||||
try {
|
||||
if ($request->query->has('from')) {
|
||||
$from = $request->query->get('from');
|
||||
if (str_contains($from, '#')) {
|
||||
[$from, $fragment] = explode('#', $from);
|
||||
}
|
||||
Router::match($from);
|
||||
throw new RedirectException(url: $from . (isset($fragment) ? '#' . $fragment : ''));
|
||||
}
|
||||
} catch (ResourceNotFoundException $e) {
|
||||
// continue
|
||||
}
|
||||
throw new RedirectException();
|
||||
return new RedirectResponse($note->getConversationUrl());
|
||||
}
|
||||
} catch (FormSizeFileException $e) {
|
||||
throw new ClientException(_m('Invalid file size given'), previous: $e);
|
||||
|
|
|
@ -210,6 +210,44 @@ class Posting extends Component
|
|||
return Event::next;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DuplicateFoundException
|
||||
* @throws ClientException
|
||||
* @throws ServerException
|
||||
*/
|
||||
public static function storeLocalPage(
|
||||
Actor $actor,
|
||||
?string $content,
|
||||
string $content_type,
|
||||
?string $locale = null,
|
||||
?VisibilityScope $scope = null,
|
||||
array $targets = [],
|
||||
null|int|Note $reply_to = null,
|
||||
array $attachments = [],
|
||||
array $processed_attachments = [],
|
||||
array $process_note_content_extra_args = [],
|
||||
bool $notify = true,
|
||||
?string $rendered = null,
|
||||
string $source = 'web',
|
||||
): Note {
|
||||
$note = self::storeLocalNote(
|
||||
actor: $actor,
|
||||
content: $content,
|
||||
content_type: $content_type,
|
||||
locale: $locale,
|
||||
scope: $scope,
|
||||
targets: $targets,
|
||||
reply_to: $reply_to,
|
||||
attachments: $attachments,
|
||||
processed_attachments: $processed_attachments,
|
||||
process_note_content_extra_args: $process_note_content_extra_args,
|
||||
notify: $notify,
|
||||
rendered: $rendered,
|
||||
source: $source
|
||||
);
|
||||
return $note->setType(NoteType::PAGE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store the given note with $content and $attachments, created by
|
||||
* $actor_id, possibly as a reply to note $reply_to and with flag
|
||||
|
|
Loading…
Reference in New Issue
Block a user