| @@ 517-554 (lines=38) @@ | ||
| 514 | return $suggestions; | |
| 515 | } | |
| 516 | ||
| 517 | 	private function format_taxonomy( $taxonomy, $taxonomy_type, $context ) { | |
| 518 | // Permissions | |
| 519 | 		switch ( $context ) { | |
| 520 | case 'edit' : | |
| 521 | $tax = get_taxonomy( $taxonomy_type ); | |
| 522 | if ( !current_user_can( $tax->cap->edit_terms ) ) | |
| 523 | return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); | |
| 524 | break; | |
| 525 | case 'display' : | |
| 526 | 			if ( -1 == get_option( 'blog_public' ) && ! current_user_can( 'read' ) ) { | |
| 527 | return new WP_Error( 'unauthorized', 'User cannot view taxonomy', 403 ); | |
| 528 | } | |
| 529 | break; | |
| 530 | default : | |
| 531 | return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); | |
| 532 | } | |
| 533 | ||
| 534 | $response = array(); | |
| 535 | $response['ID'] = (int) $taxonomy->term_id; | |
| 536 | $response['name'] = (string) $taxonomy->name; | |
| 537 | $response['slug'] = (string) $taxonomy->slug; | |
| 538 | $response['description'] = (string) $taxonomy->description; | |
| 539 | $response['post_count'] = (int) $taxonomy->count; | |
| 540 | ||
| 541 | 		if ( is_taxonomy_hierarchical( $taxonomy_type ) ) { | |
| 542 | $response['parent'] = (int) $taxonomy->parent; | |
| 543 | } | |
| 544 | ||
| 545 | $response['meta'] = (object) array( | |
| 546 | 'links' => (object) array( | |
| 547 | 'self' => (string) $this->links->get_taxonomy_link( $this->site->get_id(), $taxonomy->slug, $taxonomy_type ), | |
| 548 | 'help' => (string) $this->links->get_taxonomy_link( $this->site->get_id(), $taxonomy->slug, $taxonomy_type, 'help' ), | |
| 549 | 'site' => (string) $this->links->get_site_link( $this->site->get_id() ), | |
| 550 | ), | |
| 551 | ); | |
| 552 | ||
| 553 | return (object) $response; | |
| 554 | } | |
| 555 | ||
| 556 | // TODO: factor this out into site | |
| 557 | 	private function get_media_item_v1_1( $media_id ) { | |
| @@ 1342-1379 (lines=38) @@ | ||
| 1339 | return $this->format_taxonomy( $taxonomy, $taxonomy_type, $context ); | |
| 1340 | } | |
| 1341 | ||
| 1342 | 	function format_taxonomy( $taxonomy, $taxonomy_type, $context ) { | |
| 1343 | // Permissions | |
| 1344 | 		switch ( $context ) { | |
| 1345 | case 'edit' : | |
| 1346 | $tax = get_taxonomy( $taxonomy_type ); | |
| 1347 | if ( !current_user_can( $tax->cap->edit_terms ) ) | |
| 1348 | return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); | |
| 1349 | break; | |
| 1350 | case 'display' : | |
| 1351 | 			if ( -1 == get_option( 'blog_public' ) && ! current_user_can( 'read' ) ) { | |
| 1352 | return new WP_Error( 'unauthorized', 'User cannot view taxonomy', 403 ); | |
| 1353 | } | |
| 1354 | break; | |
| 1355 | default : | |
| 1356 | return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); | |
| 1357 | } | |
| 1358 | ||
| 1359 | $response = array(); | |
| 1360 | $response['ID'] = (int) $taxonomy->term_id; | |
| 1361 | $response['name'] = (string) $taxonomy->name; | |
| 1362 | $response['slug'] = (string) $taxonomy->slug; | |
| 1363 | $response['description'] = (string) $taxonomy->description; | |
| 1364 | $response['post_count'] = (int) $taxonomy->count; | |
| 1365 | ||
| 1366 | 		if ( is_taxonomy_hierarchical( $taxonomy_type ) ) { | |
| 1367 | $response['parent'] = (int) $taxonomy->parent; | |
| 1368 | } | |
| 1369 | ||
| 1370 | $response['meta'] = (object) array( | |
| 1371 | 'links' => (object) array( | |
| 1372 | 'self' => (string) $this->links->get_taxonomy_link( $this->api->get_blog_id_for_output(), $taxonomy->slug, $taxonomy_type ), | |
| 1373 | 'help' => (string) $this->links->get_taxonomy_link( $this->api->get_blog_id_for_output(), $taxonomy->slug, $taxonomy_type, 'help' ), | |
| 1374 | 'site' => (string) $this->links->get_site_link( $this->api->get_blog_id_for_output() ), | |
| 1375 | ), | |
| 1376 | ); | |
| 1377 | ||
| 1378 | return (object) $response; | |
| 1379 | } | |
| 1380 | ||
| 1381 | /** | |
| 1382 | * Returns ISO 8601 formatted datetime: 2011-12-08T01:15:36-08:00 | |