Relocate RSS header stuff, cleaning up the code
This commit is contained in:
parent
4327ccddcb
commit
647ecd4bd3
460
include/api.php
460
include/api.php
File diff suppressed because it is too large
Load diff
|
@ -4,6 +4,7 @@ namespace Friendica\Module\Api;
|
||||||
|
|
||||||
use Friendica\App\Arguments;
|
use Friendica\App\Arguments;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
|
use Friendica\Module\BaseApi;
|
||||||
use Friendica\Util\Arrays;
|
use Friendica\Util\Arrays;
|
||||||
use Friendica\Util\HTTPInputData;
|
use Friendica\Util\HTTPInputData;
|
||||||
use Friendica\Util\XML;
|
use Friendica\Util\XML;
|
||||||
|
@ -108,14 +109,16 @@ class ApiResponse
|
||||||
* @param string $root_element Name of the root element
|
* @param string $root_element Name of the root element
|
||||||
* @param string $type Return type (atom, rss, xml, json)
|
* @param string $type Return type (atom, rss, xml, json)
|
||||||
* @param array $data JSON style array
|
* @param array $data JSON style array
|
||||||
|
* @param int $cid ID of the contact for RSS
|
||||||
*
|
*
|
||||||
* @return array|string (string|array) XML data or JSON data
|
* @return array|string (string|array) XML data or JSON data
|
||||||
*/
|
*/
|
||||||
public function formatData(string $root_element, string $type, array $data)
|
public function formatData(string $root_element, string $type, array $data, int $cid = 0)
|
||||||
{
|
{
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'atom':
|
|
||||||
case 'rss':
|
case 'rss':
|
||||||
|
$data = BaseApi::addRSSValues($data, $cid);
|
||||||
|
case 'atom':
|
||||||
case 'xml':
|
case 'xml':
|
||||||
return $this->createXML($data, $root_element);
|
return $this->createXML($data, $root_element);
|
||||||
case 'json':
|
case 'json':
|
||||||
|
|
|
@ -314,4 +314,29 @@ class BaseApi extends BaseModule
|
||||||
|
|
||||||
return $cid;
|
return $cid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set values for RSS template
|
||||||
|
*
|
||||||
|
* @param array $arr Array to be passed to template
|
||||||
|
* @param int $cid Contact ID of template
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function addRSSValues(array $arr, int $cid)
|
||||||
|
{
|
||||||
|
$user_info = DI::twitterUser()->createFromContactId($cid)->toArray();
|
||||||
|
|
||||||
|
$arr['$user'] = $user_info;
|
||||||
|
$arr['$rss'] = [
|
||||||
|
'alternate' => $user_info['url'],
|
||||||
|
'self' => DI::baseUrl() . '/' . DI::args()->getQueryString(),
|
||||||
|
'base' => DI::baseUrl(),
|
||||||
|
'updated' => DateTimeFormat::utc(null, DateTimeFormat::API),
|
||||||
|
'atom_updated' => DateTimeFormat::utcNow(DateTimeFormat::ATOM),
|
||||||
|
'language' => $user_info['lang'],
|
||||||
|
'logo' => DI::baseUrl() . '/images/friendica-32.png',
|
||||||
|
];
|
||||||
|
|
||||||
|
return $arr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -555,6 +555,7 @@ class ApiTest extends FixtureTest
|
||||||
*/
|
*/
|
||||||
public function testApiRssExtra()
|
public function testApiRssExtra()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
$user_info = ['url' => 'user_url', 'lang' => 'en'];
|
$user_info = ['url' => 'user_url', 'lang' => 'en'];
|
||||||
$result = api_rss_extra([], $user_info);
|
$result = api_rss_extra([], $user_info);
|
||||||
self::assertEquals($user_info, $result['$user']);
|
self::assertEquals($user_info, $result['$user']);
|
||||||
|
@ -565,6 +566,7 @@ class ApiTest extends FixtureTest
|
||||||
self::assertArrayHasKey('atom_updated', $result['$rss']);
|
self::assertArrayHasKey('atom_updated', $result['$rss']);
|
||||||
self::assertArrayHasKey('language', $result['$rss']);
|
self::assertArrayHasKey('language', $result['$rss']);
|
||||||
self::assertArrayHasKey('logo', $result['$rss']);
|
self::assertArrayHasKey('logo', $result['$rss']);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -574,6 +576,7 @@ class ApiTest extends FixtureTest
|
||||||
*/
|
*/
|
||||||
public function testApiRssExtraWithoutUserInfo()
|
public function testApiRssExtraWithoutUserInfo()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
$result = api_rss_extra([], null);
|
$result = api_rss_extra([], null);
|
||||||
self::assertIsArray($result['$user']);
|
self::assertIsArray($result['$user']);
|
||||||
self::assertArrayHasKey('alternate', $result['$rss']);
|
self::assertArrayHasKey('alternate', $result['$rss']);
|
||||||
|
@ -583,6 +586,7 @@ class ApiTest extends FixtureTest
|
||||||
self::assertArrayHasKey('atom_updated', $result['$rss']);
|
self::assertArrayHasKey('atom_updated', $result['$rss']);
|
||||||
self::assertArrayHasKey('language', $result['$rss']);
|
self::assertArrayHasKey('language', $result['$rss']);
|
||||||
self::assertArrayHasKey('logo', $result['$rss']);
|
self::assertArrayHasKey('logo', $result['$rss']);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2232,7 +2236,7 @@ class ApiTest extends FixtureTest
|
||||||
'plink' => '',
|
'plink' => '',
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
$result = api_format_items($items);
|
$result = api_format_items($items, ['id' => 0], true);
|
||||||
foreach ($result as $status) {
|
foreach ($result as $status) {
|
||||||
self::assertStatus($status);
|
self::assertStatus($status);
|
||||||
}
|
}
|
||||||
|
@ -2255,7 +2259,7 @@ class ApiTest extends FixtureTest
|
||||||
'plink' => '',
|
'plink' => '',
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
$result = api_format_items($items, 'xml');
|
$result = api_format_items($items, ['id' => 0], true, 'xml');
|
||||||
foreach ($result as $status) {
|
foreach ($result as $status) {
|
||||||
self::assertStatus($status);
|
self::assertStatus($status);
|
||||||
}
|
}
|
||||||
|
@ -3025,7 +3029,7 @@ class ApiTest extends FixtureTest
|
||||||
*/
|
*/
|
||||||
public function testCheckAclInput()
|
public function testCheckAclInput()
|
||||||
{
|
{
|
||||||
$result = check_acl_input('<aclstring>');
|
$result = check_acl_input('<aclstring>', BaseApi::getCurrentUserID());
|
||||||
// Where does this result come from?
|
// Where does this result come from?
|
||||||
self::assertEquals(1, $result);
|
self::assertEquals(1, $result);
|
||||||
}
|
}
|
||||||
|
@ -3037,7 +3041,7 @@ class ApiTest extends FixtureTest
|
||||||
*/
|
*/
|
||||||
public function testCheckAclInputWithEmptyAclString()
|
public function testCheckAclInputWithEmptyAclString()
|
||||||
{
|
{
|
||||||
$result = check_acl_input(' ');
|
$result = check_acl_input(' ', BaseApi::getCurrentUserID());
|
||||||
self::assertFalse($result);
|
self::assertFalse($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue