original_string: private static function create_endpoints_for_nextcloud($issuer) {
          $baseurl = $issuer->get('baseurl');
          // Add trailing slash to baseurl, if needed.
          if (substr($baseurl, -1) !== '/') {
              $baseurl .= '/';
          }
  
          $endpoints = [
              // Baseurl will be prepended later.
              'authorization_endpoint' => 'index.php/apps/oauth2/authorize',
              'token_endpoint' => 'index.php/apps/oauth2/api/v1/token',
              'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json',
              'webdav_endpoint' => 'remote.php/webdav/',
              'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares',
          ];
  
          foreach ($endpoints as $name => $url) {
              $record = (object) [
                  'issuerid' => $issuer->get('id'),
                  'name' => $name,
                  'url' => $baseurl . $url,
              ];
              $endpoint = new \core\oauth2\endpoint(0, $record);
              $endpoint->create();
          }
  
          // Create the field mappings.
          $mapping = [
              'ocs-data-email' => 'email',
              'ocs-data-id' => 'username',
          ];
          foreach ($mapping as $external => $internal) {
              $record = (object) [
                  'issuerid' => $issuer->get('id'),
                  'externalfield' => $external,
                  'internalfield' => $internal
              ];
              $userfieldmapping = new \core\oauth2\user_field_mapping(0, $record);
              $userfieldmapping->create();
          }
      }
code: private static function create_endpoints_for_nextcloud($issuer) {
          $baseurl = $issuer->get('baseurl');
          // Add trailing slash to baseurl, if needed.
          if (substr($baseurl, -1) !== '/') {
              $baseurl .= '/';
          }
  
          $endpoints = [
              // Baseurl will be prepended later.
              'authorization_endpoint' => 'index.php/apps/oauth2/authorize',
              'token_endpoint' => 'index.php/apps/oauth2/api/v1/token',
              'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json',
              'webdav_endpoint' => 'remote.php/webdav/',
              'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares',
          ];
  
          foreach ($endpoints as $name => $url) {
              $record = (object) [
                  'issuerid' => $issuer->get('id'),
                  'name' => $name,
                  'url' => $baseurl . $url,
              ];
              $endpoint = new \core\oauth2\endpoint(0, $record);
              $endpoint->create();
          }
  
          // Create the field mappings.
          $mapping = [
              'ocs-data-email' => 'email',
              'ocs-data-id' => 'username',
          ];
          foreach ($mapping as $external => $internal) {
              $record = (object) [
                  'issuerid' => $issuer->get('id'),
                  'externalfield' => $external,
                  'internalfield' => $internal
              ];
              $userfieldmapping = new \core\oauth2\user_field_mapping(0, $record);
              $userfieldmapping->create();
          }
      }
code_tokens: private static function create_endpoints_for_nextcloud ( $ issuer ) { $ baseurl = $ issuer -> get ( 'baseurl' ) ; // Add trailing slash to baseurl, if needed. if ( substr ( $ baseurl , - 1 ) !== '/' ) { $ baseurl .= '/' ; } $ endpoints = [ // Baseurl will be prepended later. 'authorization_endpoint' => 'index.php/apps/oauth2/authorize' , 'token_endpoint' => 'index.php/apps/oauth2/api/v1/token' , 'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json' , 'webdav_endpoint' => 'remote.php/webdav/' , 'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares' , ] ; foreach ( $ endpoints as $ name => $ url ) { $ record = ( object ) [ 'issuerid' => $ issuer -> get ( 'id' ) , 'name' => $ name , 'url' => $ baseurl . $ url , ] ; $ endpoint = new \ core \ oauth2 \ endpoint ( 0 , $ record ) ; $ endpoint -> create ( ) ; } // Create the field mappings. $ mapping = [ 'ocs-data-email' => 'email' , 'ocs-data-id' => 'username' , ] ; foreach ( $ mapping as $ external => $ internal ) { $ record = ( object ) [ 'issuerid' => $ issuer -> get ( 'id' ) , 'externalfield' => $ external , 'internalfield' => $ internal ] ; $ userfieldmapping = new \ core \ oauth2 \ user_field_mapping ( 0 , $ record ) ; $ userfieldmapping -> create ( ) ; } }
docstring: Create endpoints for nextcloud issuers.
  @param issuer $issuer issuer the endpoints should be created for.
  @return mixed
  @throws \coding_exception
  @throws \core\invalid_persistent_exception
docstring_tokens: Create endpoints for nextcloud issuers .