Skip to content

Commit

Permalink
Refactored for use with new EdpGithub module
Browse files Browse the repository at this point in the history
  • Loading branch information
Hounddog committed Oct 26, 2012
1 parent 92b4ed7 commit a4f51d7
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 37 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
[submodule "vendor/ZF2"]
path = vendor/ZF2
url = https://github.com/zendframework/zf2.git
[submodule "vendor/EdpGithub"]
path = vendor/EdpGithub
url = https://github.com/Hounddog/EdpGithub.git
[submodule "vendor/ScnSocialAuth"]
path = vendor/ScnSocialAuth
url = https://github.com/Hounddog/ScnSocialAuth.git
4 changes: 2 additions & 2 deletions config/application.config.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
'ZfcBase',
'ZfcUser',
'ScnSocialAuth',
'HybridAuth',
'EdpGithub',
'Application',
'AssetManager',
'Assetic',
'HybridAuth',
'EdpGithub',
'User',
),
'module_listener_options' => array(
Expand Down
13 changes: 11 additions & 2 deletions module/Application/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,23 @@ public function getServiceConfig()
},
'application_module_service' => function($sm) {
$service = new Service\Module;
$service->setApi($sm->get('edpgithub_api_factory'));
$service->setApi($sm->get('EdpGithubClient'));
return $service;
},
'application_service_repository' => function($sm) {
$service = new Service\Repository;
$service->setApi($sm->get('edpgithub_api_factory'));
$service->setApi($sm->get('EdpGithubClient'));
return $service;
},
'github_client' => function($sm) {
$hybridAuth = $sm->get('HybridAuth');
$adapter = $hybridAuth->getAdapter('github');
$token = $adapter->getAccessToken();

$client = $sm->get('EdpGithubClient');
$client->authenticate('url_token',$token['access_token'], null);
return $client;
}
),
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ class IndexController extends AbstractActionController
{
public function indexAction()
{
$sm = $this->getServiceLocator();
$repos = $sm->get('EdpGithub\Client')->api('current_user')->repos();

$mapper = $this->getServiceLocator()->get('application_module_mapper');
$repositories = $mapper->findAll();
return array('repositories' => $repositories);
Expand Down
19 changes: 6 additions & 13 deletions module/Application/src/Application/Service/Repository.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

namespace Application\Service;

use EdpGithub\ApiClient\ApiClient;
use EdpGithub\Client;

class Repository
{
/**
* @var array
*/
protected $repository;
protected $repositories;

/**
* @var EdpGithub\ApiClient\ApiFactory
Expand All @@ -24,16 +24,9 @@ class Repository
public function getAllRepository($type)
{
if(!isset($this->repository[$type])) {
echo $this->api->getOauthToken();
exit;
$service = $this->api->getService('Repo');
$params['per_page'] = 100;
$params['page'] = 1;
$this->repositories[$type] = $service->listRepositories(null, $type, $params);
if($this->api->getNext() && $this->api->getNext() != $this->api->getCurrent()) {
$params['page'] = $this->api->getNext();
$this->getRepositoriesRecursive($this->repositories[$type], $params);
}
$client = $this->api;

$this->repositories[$type] = $client->api('current_user')->repos($type);
}
return $this->repositories[$type];
}
Expand All @@ -52,7 +45,7 @@ protected function getRepositoriesRecursive(&$repos, $params) {
$this->getAllRepos($repos, $params);
}
}
public function setApi(ApiClient $api)
public function setApi(Client $api)
{
$this->api = $api;
}
Expand Down
18 changes: 11 additions & 7 deletions module/Application/src/Application/View/Helper/ListModules.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,28 @@ public function __invoke($options = null)
$mapper = $sm->get('application_module_mapper');

$user = isset($options['user'])? $options['user']:false;
$modules = array();

//limit modules to only user modules
if($user) {
$service = $service = $sm->get('application_service_repository');

$ownerRepos = $service->getAllRepository('owner');
$memberRepos = $service->getAllRepository('member');
$repositories = array();

foreach($ownerRepos as $key => $repo) {
if($repo->getFork()) {
unset($ownerRepos[$key]);
$ownerRepos = $service->getAllRepository('owner');
foreach($ownerRepos as $repo) {
if(!$repo->fork) {
$repositories[] = $repo;
}
}

$repositories = array_merge($ownerRepos, $memberRepos);
$memberRepos = $service->getAllRepository('member');
foreach($memberRepos as $repo) {
$repositories[] = $repo;
}

foreach($repositories as $key => $repo) {
$module = $mapper->findByName($repo->getName());
$module = $mapper->findByName($repo->name);
if($module) {
$modules[] = $module;
}
Expand Down
10 changes: 10 additions & 0 deletions module/User/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class Module extends AbstractModule
public function bootstrap(ModuleManager $moduleManager, ApplicationInterface $app)
{
$em = $app->getEventManager()->getSharedManager();
$sm = $app->getServiceManager();

$em->attach('ScnSocialAuth\Authentication\Adapter\HybridAuth','githubToLocalUser', function($e) {
$localUser = $e->getTarget();
Expand All @@ -22,6 +23,15 @@ public function bootstrap(ModuleManager $moduleManager, ApplicationInterface $ap
$localUser->setUsername($nickname);
$localUser->setPhotoUrl($userProfile->photoURL);
});

$em->attach('EdpGithub\Client', 'api', function($e) use ($sm) {
$hybridAuth = $sm->get('HybridAuth');
$adapter = $hybridAuth->getAdapter('github');
$token = $adapter->getAccessToken();

$client = $e->getTarget();
$client->authenticate('url_token', $token['access_token']);
} );
}

public function getServiceConfig()
Expand Down
23 changes: 15 additions & 8 deletions module/User/src/User/View/Helper/UserRepositories.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,27 +33,34 @@ public function __invoke($options = array())
$sm = $sm->getServiceLocator();
$service = $sm->get('application_service_repository');

$ownerRepos = $service->getAllRepository('owner');
$memberRepos = $service->getAllRepository('member');
$repositories = array();

$ownerRepos = $service->getAllRepository('owner');
foreach($ownerRepos as $repo) {
if(!$repo->fork) {
$repositories[] = $repo;
}
}

$repositories = array_merge($ownerRepos, $memberRepos);
$memberRepos = $service->getAllRepository('member');
foreach($memberRepos as $repo) {
$repositories[] = $repo;
}

$mapper = $sm->get('application_module_mapper');

foreach($repositories as $key => $repo) {
if($repo->getFork()) {
if($repo->fork) {
unset($repositories[$key]);
} else {
$module = $mapper->findByName($repo->getName());
$module = $mapper->findByName($repo->name);
if($module) {
unset($repositories[$key]);
}
}
}
}

return $repositories;
}
}

/**
* Retrieve service manager instance
Expand Down
2 changes: 0 additions & 2 deletions public/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
* to the application root now.
*/
chdir(dirname(__DIR__));
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
// Setup autoloading
include 'init_autoloader.php';

Expand Down

0 comments on commit a4f51d7

Please sign in to comment.