[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\Controller;
|
||||||
use App\Core\Event;
|
use App\Core\Event;
|
||||||
use App\Core\Form;
|
use App\Core\Form;
|
||||||
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||||
use function App\Core\I18n\_m;
|
use function App\Core\I18n\_m;
|
||||||
use App\Core\Router\Router;
|
use App\Core\Router\Router;
|
||||||
use App\Core\VisibilityScope;
|
use App\Core\VisibilityScope;
|
||||||
|
@ -138,7 +139,7 @@ class Post extends Controller
|
||||||
$extra_args = [];
|
$extra_args = [];
|
||||||
Event::handle('AddExtraArgsToNoteContent', [$request, $actor, $data, &$extra_args, $form_params, $form]);
|
Event::handle('AddExtraArgsToNoteContent', [$request, $actor, $data, &$extra_args, $form_params, $form]);
|
||||||
|
|
||||||
Posting::storeLocalNote(
|
$note = Posting::storeLocalPage(
|
||||||
actor: $actor,
|
actor: $actor,
|
||||||
content: $data['content'],
|
content: $data['content'],
|
||||||
content_type: $content_type,
|
content_type: $content_type,
|
||||||
|
@ -150,19 +151,7 @@ class Post extends Controller
|
||||||
process_note_content_extra_args: $extra_args,
|
process_note_content_extra_args: $extra_args,
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
return new RedirectResponse($note->getConversationUrl());
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
} catch (FormSizeFileException $e) {
|
} catch (FormSizeFileException $e) {
|
||||||
throw new ClientException(_m('Invalid file size given'), previous: $e);
|
throw new ClientException(_m('Invalid file size given'), previous: $e);
|
||||||
|
|
|
@ -210,6 +210,44 @@ class Posting extends Component
|
||||||
return Event::next;
|
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
|
* Store the given note with $content and $attachments, created by
|
||||||
* $actor_id, possibly as a reply to note $reply_to and with flag
|
* $actor_id, possibly as a reply to note $reply_to and with flag
|
||||||
|
|
Loading…
Reference in New Issue
Block a user