You are here

Clients.php in Auth0 Single Sign On 8.2

File

vendor/auth0/auth0-php/src/API/Management/Clients.php
View source
<?php

namespace Auth0\SDK\API\Management;


/**
 * Class Clients.
 * Handles requests to the Clients endpoint of the v2 Management API.
 *
 * @package Auth0\SDK\API\Management
 */
class Clients extends GenericResource {

  /**
   * Get all Clients by page.
   * Required scopes:
   *      - "read:clients" - For any call to this endpoint.
   *      - "read:client_keys" - To retrieve "client_secret" and "encryption_key" attributes.
   *
   * @param null|string|array $fields         Fields to include or exclude from the result:
   *      - Including only the fields required can speed up API calls significantly.
   *      - Arrays will be converted to comma-separated strings.
   * @param null|boolean      $include_fields True to include $fields, false to exclude $fields.
   * @param null|integer      $page           Page number to get, zero-based.
   * @param null|integer      $per_page       Number of results to get, null to return the default number.
   * @param array             $add_params     Additional API parameters, over-written by function params.
   *
   * @return mixed
   *
   * @throws \Exception Thrown by the HTTP client when there is a problem with the API call.
   *
   * @link https://auth0.com/docs/api/management/v2#!/Clients/get_clients
   */
  public function getAll($fields = null, $include_fields = null, $page = null, $per_page = null, array $add_params = []) {

    // Set additional parameters first so they are over-written by function parameters.
    $params = is_array($add_params) ? $add_params : [];

    // Results fields.
    if (!empty($fields)) {
      $params['fields'] = is_array($fields) ? implode(',', $fields) : $fields;
      if (null !== $include_fields) {
        $params['include_fields'] = $include_fields;
      }
    }

    // Pagination.
    if (null !== $page) {
      $params['page'] = abs((int) $page);
      if (null !== $per_page) {
        $params['per_page'] = $per_page;
      }
    }
    return $this->apiClient
      ->method('get')
      ->addPath('clients')
      ->withDictParams($params)
      ->call();
  }

  /**
   * Get a single Client by ID.
   * Required scopes:
   *      - "read:clients" - For any call to this endpoint.
   *      - "read:client_keys" - To retrieve "client_secret" and "encryption_key" attributes.
   *
   * @param string            $client_id      Client ID to get.
   * @param null|string|array $fields         Fields to include or exclude from the result:
   *      - Including only the fields required can speed up API calls significantly.
   *      - Arrays will be converted to comma-separated strings.
   * @param null|boolean      $include_fields True to include $fields, false to exclude $fields.
   *
   * @return mixed
   *
   * @throws \Exception Thrown by the HTTP client when there is a problem with the API call.
   *
   * @link https://auth0.com/docs/api/management/v2#!/Clients/get_clients_by_id
   */
  public function get($client_id, $fields = null, $include_fields = null) {
    $params = [];

    // Results fields.
    if (!empty($fields)) {
      $params['fields'] = is_array($fields) ? implode(',', $fields) : $fields;
      if (null !== $include_fields) {
        $params['include_fields'] = $include_fields;
      }
    }
    return $this->apiClient
      ->method('get')
      ->addPath('clients', $client_id)
      ->withDictParams($params)
      ->call();
  }

  /**
   * Delete a Client by ID.
   * Required scope: "delete:clients"
   *
   * @param string $client_id Client ID to delete.
   *
   * @return mixed|string
   *
   * @throws \Exception Thrown by the HTTP client when there is a problem with the API call.
   *
   * @link https://auth0.com/docs/api/management/v2#!/Clients/delete_clients_by_id
   */
  public function delete($client_id) {
    return $this->apiClient
      ->method('delete')
      ->addPath('clients', $client_id)
      ->call();
  }

  /**
   * Create a new Client.
   * Required scope: "create:clients"
   *
   * @param array $data Client create data; "name" field is required.
   *
   * @return mixed|string
   *
   * @throws \Exception Thrown by the HTTP client when there is a problem with the API call.
   *
   * @link https://auth0.com/docs/api/management/v2#!/Clients/post_clients
   */
  public function create(array $data) {
    if (empty($data['name'])) {
      throw new \Exception('Missing required "name" field.');
    }
    return $this->apiClient
      ->method('post')
      ->addPath('clients')
      ->withBody(json_encode($data))
      ->call();
  }

  /**
   * Update a Client.
   * Required scopes:
   *      - "update:clients" - For any call to this endpoint.
   *      - "update:client_keys" - To update "client_secret" and "encryption_key" attributes.
   *
   * @param string $client_id Client ID to update.
   * @param array  $data      Client data to update.
   *
   * @return mixed|string
   *
   * @throws \Exception Thrown by the HTTP client when there is a problem with the API call.
   *
   * @link https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id
   */
  public function update($client_id, array $data) {
    return $this->apiClient
      ->method('patch')
      ->addPath('clients', $client_id)
      ->withBody(json_encode($data))
      ->call();
  }

}

Classes

Namesort descending Description
Clients Class Clients. Handles requests to the Clients endpoint of the v2 Management API.