use Friendica\Core\System;
use Friendica\Database\DBA;
use Friendica\DI;
+use Friendica\Model\Contact;
use Friendica\Module\BaseApi;
/**
class Accounts extends BaseApi
{
/**
- * @param array $parameters
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public static function rawContent(array $parameters = [])
+ public function rawContent()
{
- if (empty($parameters['id'])) {
- DI::mstdnError()->RecordNotFound();
+ $uid = self::getCurrentUserID();
+
+ if (empty(static::$parameters['id']) && empty(static::$parameters['name'])) {
+ DI::mstdnError()->UnprocessableEntity();
}
- $id = $parameters['id'];
- if (!DBA::exists('contact', ['id' => $id, 'uid' => 0])) {
- DI::mstdnError()->RecordNotFound();
+ if (!empty(static::$parameters['id'])) {
+ $id = static::$parameters['id'];
+ if (!DBA::exists('contact', ['id' => $id, 'uid' => 0])) {
+ DI::mstdnError()->RecordNotFound();
+ }
+ } else {
+ $contact = Contact::selectFirst(['id'], ['nick' => static::$parameters['name'], 'uid' => 0]);
+ if (!empty($contact['id'])) {
+ $id = $contact['id'];
+ } elseif (!($id = Contact::getIdForURL(static::$parameters['name'], 0, false))) {
+ DI::mstdnError()->RecordNotFound();
+ }
}
- $account = DI::mstdnAccount()->createFromContactId($id, self::getCurrentUserID());
+ $account = DI::mstdnAccount()->createFromContactId($id, $uid);
System::jsonExit($account);
}
}