| @@ 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 ) { |
|
| @@ 1398-1435 (lines=38) @@ | ||
| 1395 | return $this->format_taxonomy( $taxonomy, $taxonomy_type, $context ); |
|
| 1396 | } |
|
| 1397 | ||
| 1398 | function format_taxonomy( $taxonomy, $taxonomy_type, $context ) { |
|
| 1399 | // Permissions |
|
| 1400 | switch ( $context ) { |
|
| 1401 | case 'edit' : |
|
| 1402 | $tax = get_taxonomy( $taxonomy_type ); |
|
| 1403 | if ( !current_user_can( $tax->cap->edit_terms ) ) |
|
| 1404 | return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); |
|
| 1405 | break; |
|
| 1406 | case 'display' : |
|
| 1407 | if ( -1 == get_option( 'blog_public' ) && ! current_user_can( 'read' ) ) { |
|
| 1408 | return new WP_Error( 'unauthorized', 'User cannot view taxonomy', 403 ); |
|
| 1409 | } |
|
| 1410 | break; |
|
| 1411 | default : |
|
| 1412 | return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); |
|
| 1413 | } |
|
| 1414 | ||
| 1415 | $response = array(); |
|
| 1416 | $response['ID'] = (int) $taxonomy->term_id; |
|
| 1417 | $response['name'] = (string) $taxonomy->name; |
|
| 1418 | $response['slug'] = (string) $taxonomy->slug; |
|
| 1419 | $response['description'] = (string) $taxonomy->description; |
|
| 1420 | $response['post_count'] = (int) $taxonomy->count; |
|
| 1421 | ||
| 1422 | if ( is_taxonomy_hierarchical( $taxonomy_type ) ) { |
|
| 1423 | $response['parent'] = (int) $taxonomy->parent; |
|
| 1424 | } |
|
| 1425 | ||
| 1426 | $response['meta'] = (object) array( |
|
| 1427 | 'links' => (object) array( |
|
| 1428 | 'self' => (string) $this->links->get_taxonomy_link( $this->api->get_blog_id_for_output(), $taxonomy->slug, $taxonomy_type ), |
|
| 1429 | 'help' => (string) $this->links->get_taxonomy_link( $this->api->get_blog_id_for_output(), $taxonomy->slug, $taxonomy_type, 'help' ), |
|
| 1430 | 'site' => (string) $this->links->get_site_link( $this->api->get_blog_id_for_output() ), |
|
| 1431 | ), |
|
| 1432 | ); |
|
| 1433 | ||
| 1434 | return (object) $response; |
|
| 1435 | } |
|
| 1436 | ||
| 1437 | /** |
|
| 1438 | * Returns ISO 8601 formatted datetime: 2011-12-08T01:15:36-08:00 |
|