PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
jetpack / json-endpoints / class.wpcom-json-api-get-media-v1-2-endpoint.php

class.wpcom-json-api-get-media-v1-2-endpoint.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.7, at json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php

94 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit( 0 );
5 }
6
7 require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.media.php';
8
9 new WPCOM_JSON_API_Get_Media_v1_2_Endpoint(
10 array(
11 'description' => 'Get a single media item (by ID).',
12 'group' => 'media',
13 'stat' => 'media:1',
14 'min_version' => '1.2',
15 'max_version' => '1.2',
16 'method' => 'GET',
17 'path' => '/sites/%s/media/%d',
18 'path_labels' => array(
19 '$site' => '(int|string) Site ID or domain',
20 '$media_ID' => '(int) The ID of the media item',
21 ),
22 'response_format' => array(
23 'ID' => '(int) The ID of the media item',
24 'date' => '(ISO 8601 datetime) The date the media was uploaded',
25 'post_ID' => '(int) ID of the post this media is attached to',
26 'author_ID' => '(int) ID of the user who uploaded the media',
27 'URL' => '(string) URL to the file',
28 'guid' => '(string) Unique identifier',
29 'file' => '(string) Filename',
30 'extension' => '(string) File extension',
31 'mime_type' => '(string) File MIME type',
32 'title' => '(string) Filename',
33 'caption' => '(string) User-provided caption of the file',
34 'description' => '(string) Description of the file',
35 'alt' => '(string) Alternative text for image files.',
36 'thumbnails' => '(object) Media item thumbnail URL options',
37 'height' => '(int) (Image & video only) Height of the media item',
38 'width' => '(int) (Image & video only) Width of the media item',
39 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
40 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
41 'rating' => '(string) (Video only) VideoPress rating of the video',
42 'display_embed' => '(string) Video only. Whether to share or not the video.',
43 'allow_download' => '(string) Video only. Whether the video can be downloaded or not.',
44 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
45 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.',
46 'revision_history' => '(object) An object with `items` and `original` keys. ' .
47 '`original` is an object with data about the original image. ' .
48 '`items` is an array of snapshots of the previous images of this Media. ' .
49 'Each item has the `URL`, `file, `extension`, `date`, and `mime_type` fields.',
50 ),
51
52 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/82974409/media/934',
53 'example_request_data' => array(
54 'headers' => array(
55 'authorization' => 'Bearer YOUR_API_TOKEN',
56 ),
57 ),
58 )
59 );
60
61 /**
62 * GET Media v1_2 endpoint class.
63 *
64 * @phan-constructor-used-for-side-effects
65 */
66 class WPCOM_JSON_API_Get_Media_v1_2_Endpoint extends WPCOM_JSON_API_Get_Media_v1_1_Endpoint { //phpcs:ignore
67 /**
68 *
69 * API callback.
70 *
71 * @param string $path - the path.
72 * @param int $blog_id - the blog ID.
73 * @param int $media_id - the media ID.
74 */
75 public function callback( $path = '', $blog_id = 0, $media_id = 0 ) {
76 $response = parent::callback( $path, $blog_id, $media_id );
77
78 if ( is_wp_error( $response ) ) {
79 return $response;
80 }
81
82 $media_item = get_post( $media_id );
83 $response->modified = (string) $this->format_date( $media_item->post_modified_gmt, $media_item->post_modified );
84
85 // expose `revision_history` object.
86 $response->revision_history = (object) array(
87 'items' => (array) Jetpack_Media::get_revision_history( $media_id ),
88 'original' => (object) Jetpack_Media::get_original_media( $media_id ),
89 );
90
91 return $response;
92 }
93 }
94