PageRenderTime 26ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Http/routes.php

https://gitlab.com/rodrigo.butta/bgh
PHP | 213 lines | 140 code | 33 blank | 40 comment | 0 complexity | 579b56631e1765104e1def0da6024c07 MD5 | raw file
  1. <?php
  2. // Patterns
  3. Route::pattern('id', '[0-9]+');
  4. Route::get('user/{username}', ['as' => 'user', 'uses' => 'UserController@getUser']);
  5. Route::get('user/{username}/favorites', ['as' => 'users.favorites', 'uses' => 'UserController@getFavorites']);
  6. Route::get('user/{username}/followers', ['as' => 'users.followers', 'uses' => 'UserController@getFollowers']);
  7. Route::get('users', ['as' => 'users', 'uses' => 'UserController@getAll']);
  8. Route::get('productos/{category?}', ['as' => 'products', 'uses' => 'ProductCategoryController@getCategory'])->where('category', '(.*)');
  9. Route::get('producto/{id}/{slug?}', ['as' => 'product', 'uses' => 'ProductController@getIndex']);
  10. Route::get('media/{id}/{slug?}', ['as' => 'media', 'uses' => 'MediaController@getMedia']);
  11. Route::get('tag/{tag}', ['as' => 'tags', 'uses' => 'TagsController@getIndex']);
  12. Route::get('notifications', ['as' => 'notifications', 'uses' => 'UserController@getNotifications']);
  13. Route::get('tos', ['as' => 'tos', 'uses' => 'PolicyController@getTos']);
  14. Route::get('privacy', ['as' => 'privacy', 'uses' => 'PolicyController@getPrivacy']);
  15. Route::get('faq', ['as' => 'faq', 'uses' => 'PolicyController@getFaq']);
  16. Route::get('about', ['as' => 'about', 'uses' => 'PolicyController@getAbout']);
  17. Route::get('search', ['as' => 'search', 'uses' => 'ProductController@search']);
  18. Route::get('featured', ['as' => 'products.featured', 'uses' => 'ProductController@featured']);
  19. Route::get('popular', ['as' => 'products.popular', 'uses' => 'ProductController@mostPopular']);
  20. Route::get('most/viewed', ['as' => 'products.most.viewed', 'uses' => 'ProductController@mostViewed']);
  21. Route::get('most/commented', ['as' => 'products.most.commented', 'uses' => 'ProductController@mostCommented']);
  22. Route::get('most/favorites', ['as' => 'products.most.favorites', 'uses' => 'ProductController@mostFavorited']);
  23. Route::get('blogs', ['as' => 'blogs', 'uses' => 'BlogController@getIndex']);
  24. Route::get('blog/{id}/{slug}', ['as' => 'blog', 'uses' => 'BlogController@getBlog']);
  25. Route::get('lang/{lang?}', 'PolicyController@switchLang');
  26. Route::post('queue/receive', 'PolicyController@queue');
  27. /**
  28. * Guest only visit this section
  29. */
  30. Route::group(['middleware' => 'guest'], function () {
  31. Route::get('login', ['as' => 'login', 'uses' => 'Auth\LoginController@getLogin']);
  32. Route::get('auth/{provider}', 'Auth\LoginController@getSocial');
  33. Route::get('auth/{provider}/callback', 'Auth\LoginController@getSocialCallback');
  34. Route::get('registration/{provider}', 'Auth\RegistrationController@getSocialRegister');
  35. Route::get('registration', ['as' => 'registration', 'uses' => 'Auth\RegistrationController@getIndex']);
  36. Route::get('registration/activate/{username}/{code}', 'Auth\RegistrationController@validateUser');
  37. Route::get('password/email', ['as' => 'password.reminder', 'uses' => 'Auth\PasswordController@getEmail']);
  38. Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
  39. });
  40. /**
  41. * Guest Post form with csrf protection
  42. */
  43. Route::group(['middleware' => 'csrf:guest'], function () {
  44. Route::post('login', 'Auth\LoginController@postLogin');
  45. Route::post('registration/{provider}', 'Auth\RegistrationController@postSocialRegister');
  46. Route::post('password/email', 'Auth\PasswordController@postEmail');
  47. Route::post('password/reset/{token}', 'Auth\PasswordController@postReset');
  48. Route::post('registration', 'Auth\RegistrationController@postIndex');
  49. });
  50. /*
  51. * Ajax post
  52. */
  53. Route::group(['middleware' => 'auth'], function () {
  54. // Ajax Routes
  55. Route::post('favorite', 'ImageController@postFavorite');
  56. Route::post('follow', 'UserController@follow');
  57. Route::post('reply', 'ReplyController@postReply');
  58. Route::post('votecomment', 'CommentController@vote');
  59. Route::post('votereply', 'ReplyController@vote');
  60. Route::post('deletecomment', 'CommentController@postDeleteComment');
  61. Route::post('deletereply', 'ReplyController@delete');
  62. // Non-Ajax Routes
  63. Route::get('logout', ['as' => 'logout', 'uses' => 'Auth\LoginController@getLogout']);
  64. Route::get('feeds', ['as' => 'users.feeds', 'uses' => 'UserController@getFeeds']);
  65. Route::get('user/{username}/following', ['as' => 'users.following', 'uses' => 'UserController@getFollowing']);
  66. Route::get('media/{any}/download', ['as' => 'media.download', 'uses' => 'MediaController@download']);
  67. Route::get('settings', ['as' => 'users.settings', 'uses' => 'UserController@getSettings']);
  68. Route::get('user/{username}/report', ['as' => 'user.report', 'uses' => 'ReportController@getReport']);
  69. });
  70. /**
  71. * Post Sections CSRF + AUTH both
  72. */
  73. Route::group(['middleware' => 'csrf:auth'], function () {
  74. Route::post('product/{id}/{slug?}', 'ProductController@postComment');
  75. Route::post('settings/changepassword', 'UserController@postChangePassword');
  76. Route::post('settings/updateprofile', 'UserController@postUpdateProfile');
  77. Route::post('settings/mailsettings', 'UserController@postMailSettings');
  78. Route::post('settings/updateavatar', 'UserController@postUpdateAvatar');
  79. Route::post('user/{username}/report', 'ReportController@postReportUser');
  80. });
  81. Route::group(['middleware' => 'admin', 'namespace' => 'Admin'], function () {
  82. Route::get('admin', ['as' => 'admin', 'uses' => 'IndexController@getIndex']);
  83. // Comment Manger
  84. Route::get('admin/comments', ['as' => 'admin.comments', 'uses' => 'Comment\CommentController@getIndex']);
  85. Route::get('admin/comments/data', ['as' => 'admin.comments.data', 'uses' => 'Comment\CommentController@getData']);
  86. Route::get('admin/comments/{id}/edit', ['as' => 'admin.comments.edit', 'uses' => 'Comment\CommentController@getEdit']);
  87. Route::post('admin/comments/{id}/edit', ['as' => 'admin.comments.edit', 'uses' => 'Comment\CommentController@postEdit']);
  88. // Product
  89. Route::get('admin/products', ['as' => 'admin.products', 'uses' => 'Product\ProductController@getList']);
  90. Route::get('admin/products/data', ['as' => 'admin.products.data', 'uses' => 'Product\ProductController@getData']);
  91. // mas cercano a REST con verbs
  92. Route::get('admin/products/{id}/edit', ['as' => 'admin.products.edit', 'uses' => 'Product\ProductController@edit']);
  93. Route::patch('admin/products/{id}/edit', ['as' => 'admin.products.edit', 'uses' => 'Product\ProductController@patch', 'before' => 'csrf']);
  94. Route::delete('admin/products/{id}/edit', ['as' => 'admin.products.edit', 'uses' => 'Product\ProductController@delete', 'before' => 'csrf']);
  95. Route::get('admin/products/{id}/clearcache', ['as' => 'admin.products.clearcache', 'uses' => 'Product\ProductController@clearCache']);
  96. Route::put('admin/products/create', ['as' => 'admin.products.create', 'uses' => 'Product\ProductController@put', 'before' => 'csrf']);
  97. Route::post('admin/products/approve', ['as' => 'admin.products.approve', 'uses' => 'Product\ProductController@approve']);
  98. Route::get('admin/products/{id}/clone', ['as' => 'admin.products.clone', 'uses' => 'Product\ProductController@doClone']);
  99. // Product Category
  100. Route::get('admin/productcategories', ['as' => 'admin.productcategories', 'uses' => 'ProductCategory\ProductCategoryController@index']);
  101. Route::post('admin/productcategories', 'ProductCategory\ProductCategoryController@createCategory'); // Add
  102. Route::post('admin/productcategories/reorder', 'ProductCategory\ProductCategoryController@reorderCategory');
  103. Route::get('admin/productcategories/{id}/edit', ['as' => 'admin.productcategories.edit', 'uses' => 'ProductCategory\ProductCategoryController@edit']);
  104. Route::post('admin/productcategories/{id}/update', ['as' => 'admin.productcategories.update', 'uses' => 'ProductCategory\ProductCategoryController@update']);
  105. Route::delete('admin/productcategories/{id}/edit', ['as' => 'admin.productcategories.edit', 'uses' => 'ProductCategory\ProductCategoryController@delete']);
  106. Route::get('admin/productcategories/{id}/items', ['as' => 'admin.productcategories.items', 'uses' => 'ProductCategory\ProductCategoryController@items']);
  107. Route::post('admin/productcategories/{id}/items', ['as' => 'admin.productcategories.items', 'uses' => 'ProductCategory\ProductCategoryController@itemsupdate']);
  108. Route::get('admin/productcategories/productlist', ['as' => 'admin.productcategories.productlist', 'uses' => 'ProductCategory\ProductCategoryController@productlist']);
  109. // Media
  110. Route::get('admin/media', ['as' => 'admin.media', 'uses' => 'MediaController@getList']);
  111. Route::get('admin/media/data', ['as' => 'admin.media.data', 'uses' => 'MediaController@getData']);
  112. // mas cercano a REST con verbs
  113. Route::get('admin/media/{id}/edit', ['as' => 'admin.media.edit', 'uses' => 'MediaController@edit']);
  114. Route::patch('admin/media/{id}/edit', ['as' => 'admin.media.edit', 'uses' => 'MediaController@patch', 'before' => 'csrf']);
  115. Route::delete('admin/media/{id}/edit', ['as' => 'admin.media.edit', 'uses' => 'MediaController@delete', 'before' => 'csrf']);
  116. Route::get('admin/media/{id}/use', ['as' => 'admin.media.use', 'uses' => 'MediaController@getUse']);
  117. Route::get('admin/media/{id}/clearcache', ['as' => 'admin.media.clearcache', 'uses' => 'MediaController@clearCache']);
  118. Route::put('admin/media/create', ['as' => 'admin.media.create', 'uses' => 'MediaController@put', 'before' => 'csrf']);
  119. Route::get('admin/media/bulkupload', ['as' => 'admin.media.bulkupload', 'uses' => 'MediaController@getBulkUpload']);
  120. Route::post('admin/media/bulkupload', ['as' => 'admin.media.bulkupload', 'uses' => 'MediaController@postBulkUpload']);
  121. // Blogs
  122. Route::get('admin/blogs', ['as' => 'admin.blogs', 'uses' => 'Blog\BlogController@getIndex']);
  123. Route::get('admin/blogs/data', ['as' => 'admin.blogs.data', 'uses' => 'Blog\BlogController@getData']);
  124. Route::get('admin/blogs/create', ['as' => 'admin.blogs.create', 'uses' => 'Blog\BlogController@getCreate']);
  125. Route::post('admin/blogs/create', ['as' => 'admin.blogs.create', 'uses' => 'Blog\BlogController@postCreate']);
  126. Route::get('admin/blogs/{id}', ['as' => 'admin.blogs.edit', 'uses' => 'Blog\BlogController@getEdit']);
  127. Route::post('admin/blogs/{id}', ['as' => 'admin.blogs.edit', 'uses' => 'Blog\BlogController@postEdit']);
  128. Route::group(['middleware' => 'superadmin'], function () {
  129. // User Manager
  130. Route::get('admin/users', ['as' => 'admin.users', 'uses' => 'User\UserController@getIndex']);
  131. Route::get('admin/users/data', ['as' => 'admin.users.data', 'uses' => 'User\UserController@getData']);
  132. Route::get('admin/users/{id}/edit', ['as' => 'admin.users.edit', 'uses' => 'User\UpdateController@getEdit']);
  133. Route::get('admin/users/add', ['as' => 'admin.users.add', 'uses' => 'User\UserController@getAddUser']);
  134. Route::post('admin/users/add', ['as' => 'admin.users.add', 'uses' => 'User\UpdateController@postAddUser']);
  135. Route::post('admin/users/{id}/edit', ['as' => 'admin.users.edit', 'uses' => 'User\UpdateController@postEdit']);
  136. Route::post('admin/users/approve', ['as' => 'admin.users.approve', 'uses' => 'User\UpdateController@postApprove']);
  137. // Profiles
  138. Route::get('admin/profiles', ['as' => 'admin.profiles', 'uses' => 'ProfileController@getList']);
  139. Route::get('admin/profiles/data', ['as' => 'admin.profiles.data', 'uses' => 'ProfileController@getData']);
  140. Route::put('admin/profiles', ['as' => 'admin.profiles', 'uses' => 'ProfileController@create']); // Add
  141. Route::get('admin/profiles/{id}/edit', ['as' => 'admin.profiles.edit', 'uses' => 'ProfileController@edit']);
  142. Route::patch('admin/profiles/{id}/edit', ['as' => 'admin.profiles.edit', 'uses' => 'ProfileController@patch']);
  143. // Site Settings
  144. Route::get('admin/settings/details', ['as' => 'admin.settings.details', 'uses' => 'Settings\SettingsController@getSiteDetails']);
  145. Route::post('admin/settings/details', ['as' => 'admin.settings.details', 'uses' => 'Settings\UpdateController@postSiteDetails']);
  146. Route::get('admin/settings/limits', ['as' => 'admin.settings.limits', 'uses' => 'Settings\SettingsController@getLimitSettings']);
  147. Route::post('admin/settings/limits', ['as' => 'admin.settings.limits', 'uses' => 'Settings\UpdateController@postLimitSettings']);
  148. Route::get('admin/settings/cache', ['as' => 'admin.settings.cache', 'uses' => 'Settings\SettingsController@getCacheSettings']);
  149. Route::post('admin/settings/cache', ['as' => 'admin.settings.cache', 'uses' => 'Settings\UpdateController@postCacheSettings']);
  150. Route::get('admin/settings/sitemap', ['as' => 'admin.settings.sitemap', 'uses' => 'Settings\UpdateController@updateSiteMap']);
  151. // Reports
  152. Route::get('admin/reports', ['as' => 'admin.reports', 'uses' => 'Report\ReportController@getReports']);
  153. Route::get('admin/reports/data', ['as' => 'admin.reports.data', 'uses' => 'Report\ReportController@getData']);
  154. Route::get('admin/reports/{id}', ['as' => 'admin.reports.read', 'uses' => 'Report\ReportController@getReadReport']);
  155. // Pages
  156. Route::get('admin/pages', ['as' => 'admin.pages', 'uses' => 'PageController@getIndex']);
  157. Route::get('admin/pages/data', ['as' => 'admin.pages.data', 'uses' => 'PageController@getData']);
  158. Route::get('admin/pages/{id}/edit', ['as' => 'admin.pages.edit', 'uses' => 'PageController@edit']);
  159. Route::patch('admin/pages/{id}/edit', ['as' => 'admin.pages.edit', 'uses' => 'PageController@patch', 'before' => 'csrf']);
  160. Route::delete('admin/pages/{id}/edit', ['as' => 'admin.pages.edit', 'uses' => 'PageController@delete', 'before' => 'csrf']);
  161. Route::get('admin/pages/{id}/clone', ['as' => 'admin.pages.clone', 'uses' => 'PageController@doClone']);
  162. Route::get('admin/pages/create', ['as' => 'admin.pages.create', 'uses' => 'PageController@create']);
  163. Route::put('admin/pages/create', ['as' => 'admin.pages.create', 'uses' => 'PageController@put', 'before' => 'csrf']);
  164. });
  165. });
  166. // reb redirecciono el index para que vaya al home que es un Page
  167. // Route::get('/', ['as' => 'home', 'middleware' => 'guest', 'uses' => 'HomeController@getIndex']);
  168. Route::get('/', ['as' => 'home', 'middleware' => 'guest', 'uses' => 'PageController@getSlug']);
  169. // reb tiene que estar al final, porque si no entra al sitio por nada, se fija si existe una page creada con ese nombre
  170. // http://stackoverflow.com/questions/20870899/order-of-route-declarations-in-laravel-package
  171. Route::get('/{slug?}', ['as' => 'page', 'uses' => 'PageController@getSlug'])->where('slug', '(.*)');
  172. // Event::listen('404', function() {
  173. // $page = URI::current();
  174. // return Response::error('404');
  175. // });
  176. // REB Debuggear todos los querys que se ejecutan en un request dado
  177. // Event::listen('illuminate.query', function($query)
  178. // {
  179. // var_dump($query);
  180. // });