web.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <?php
  2. use Illuminate\Support\Facades\Route;
  3. use Illuminate\Support\Facades\Auth;
  4. // 사용자
  5. use App\Http\Controllers\Account;
  6. use App\Http\Controllers\Auth\LoginController;
  7. use App\Http\Controllers\Auth\RegisterController;
  8. use App\Http\Controllers\Auth\ForgotAccountController;
  9. use App\Http\Controllers\MainController;
  10. use App\Http\Controllers\DocumentController;
  11. use App\Http\Controllers\Board\BoardController;
  12. use App\Http\Controllers\Board\PostController;
  13. use App\Http\Controllers\Board\CommentController;
  14. use App\Http\Controllers\Board\TagController;
  15. use App\Http\Controllers\ApiController;
  16. use App\Http\Controllers\Chat\ClientController;
  17. /*
  18. use App\Http\Controllers\Service\FinancialController;
  19. use App\Http\Controllers\Service\PriceController;
  20. use App\Http\Controllers\Service\AnniversaryController;
  21. use App\Http\Controllers\Service\FIFAController;
  22. use App\Http\Controllers\Service\LottoController;
  23. */
  24. /*
  25. |--------------------------------------------------------------------------
  26. | Web Routes
  27. |--------------------------------------------------------------------------
  28. |
  29. | Here is where you can register web routes for your application. These
  30. | routes are loaded by the RouteServiceProvider within a group which
  31. | contains the "web" middleware group. Now create something great!
  32. |
  33. */
  34. /*
  35. Route::get('/', function () {
  36. return view('welcome');
  37. });
  38. */
  39. Auth::routes(['verify' => true]);
  40. Route::get('/', [MainController::class, 'index'])->name('main');
  41. // 최신글 보기
  42. Route::get('/recently', [MainController::class, 'recently'])->name('recently');
  43. // sitemap.xml (public/sitemap.xml 정적 파일을 제거했으므로 이 라우트가 응답한다)
  44. Route::get('/sitemap.xml', [App\Http\Controllers\SitemapController::class, 'index'])->name('sitemap');
  45. /**
  46. |--------------------------------------------------------------------------
  47. | 사용자
  48. |--------------------------------------------------------------------------
  49. */
  50. // 로그아웃
  51. Route::get('/logout', [LoginController::class, 'logout'])->name('logout');
  52. // 채팅
  53. Route::get('/chat', [ClientController::class, 'index'])->name('chat.index');
  54. Route::prefix('auth')->name('auth.')->group(function()
  55. {
  56. // 아이디 찾기
  57. Route::get('/findID', [ForgotAccountController::class, 'index'])->name('findID');
  58. Route::post('/findID/requestTossCert', [ForgotAccountController::class, 'requestTossCert'])->name('findID.requestTossCert');
  59. Route::post('/findID', [ForgotAccountController::class, 'store'])->name('findID.store');
  60. // 이메일 검증 확인
  61. Route::post('/register/sendVerifyLink', [RegisterController::class, 'sendVerifyLink'])->name('register.sendVerifyLink');
  62. Route::get('/register/verifyEmail/{token}', [RegisterController::class, 'verifyEmail'])->middleware('signed')->name('register.verifyEmail');
  63. Route::post('/register/checkVerifiedEmail', [RegisterController::class, 'checkVerifiedEmail'])->name('register.checkVerifiedEmail');
  64. });
  65. // 문서
  66. Route::get('/document/{code}', [DocumentController::class, 'index'])->name('document');
  67. // 게시판 이미지 첨부 기능
  68. Route::get('/editor/uploader', [ApiController::class, 'uploader'])->name('uploader');
  69. /**
  70. * 내부 API 호출
  71. */
  72. Route::prefix('api')->name('api.')->group(function()
  73. {
  74. Route::get('/loginCheck', [ApiController::class, 'loginCheck'])->name('loginCheck');
  75. Route::post('/filterSpamKeyword', [ApiController::class, 'filterSpamKeyword'])->name('filterSpamKeyword');
  76. Route::post('/isEmailAble', [ApiController::class, 'isEmailAble'])->name('isEmailAble');
  77. Route::post('/isPhoneAble', [ApiController::class, 'isPhoneAble'])->name('isPhoneAble');
  78. Route::post('/isPasswordAble', [ApiController::class, 'isPasswordAble'])->name('isPasswordAble');
  79. Route::post('/isNicknameAble', [ApiController::class, 'isNicknameAble'])->name('isNicknameAble');
  80. Route::post('/passwordCampaignSkip', [ApiController::class, 'passwordCampaignSkip'])->name('passwordCampaignSkip');
  81. });
  82. /**
  83. * 공공데이터 API
  84. */
  85. /*
  86. Route::prefix('service')->name('service.')->group(function()
  87. {
  88. Route::get('/financial/exchange', [FinancialController::class, 'exchange'])->name('financial.exchange');
  89. Route::get('/financial/interest', [FinancialController::class, 'interest'])->name('financial.interest');
  90. Route::get('/financial/international', [FinancialController::class, 'international'])->name('financial.international');
  91. Route::get('/price/flower', [PriceController::class, 'flower'])->name('price.flower');
  92. Route::get('/anniversary', [AnniversaryController::class, 'index'])->name('anniversary');
  93. Route::get('/fifa', [FIFAController::class, 'index'])->name('fifa');
  94. Route::get('/lotto', [LottoController::class, 'index'])->name('lotto');
  95. });
  96. */
  97. /**
  98. |--------------------------------------------------------------------------
  99. | 게시판
  100. |--------------------------------------------------------------------------
  101. */
  102. Route::prefix('board')->name('board.')->group(function()
  103. {
  104. // 게시판
  105. Route::get('/{code}', [BoardController::class, 'index'])->name('list');
  106. Route::get('/{code}/write', [PostController::class, 'write'])->name('post.write');
  107. Route::post('/{code}/store', [PostController::class, 'store'])->name('post.store');
  108. // 게시글
  109. Route::get('/{code}/{postID}', [PostController::class, 'view'])->whereNumber('postID')->name('post.view');
  110. Route::get('/{code}/{postID}/edit', [PostController::class, 'edit'])->whereNumber('postID')->name('post.edit');
  111. Route::put('/{code}/{postID}/update', [PostController::class, 'update'])->whereNumber('postID')->name('post.update');
  112. Route::delete('/{code}/{postID}/delete', [PostController::class, 'delete'])->whereNumber('postID')->name('post.delete');
  113. Route::post('/{code}/{postID}/blame', [PostController::class, 'blame'])->whereNumber('postID')->name('post.blame');
  114. Route::post('/{code}/{postID}/bookmark', [PostController::class, 'bookmark'])->whereNumber('postID')->name('post.bookmark');
  115. Route::post('/{code}/{postID}/like', [PostController::class, 'like'])->whereNumber('postID')->name('post.like');
  116. Route::post('/{code}/{postID}/dislike', [PostController::class, 'dislike'])->whereNumber('postID')->name('post.dislike');
  117. Route::post('/{code}/{postID}/download', [PostController::class, 'download'])->whereNumber('postID')->name('post.download');
  118. Route::post('/{code}/{postID}/link', [PostController::class, 'link'])->whereNumber('postID')->name('post.link');
  119. Route::get('/{code}/uploader', [PostController::class, 'uploader'])->name('post.uploader');
  120. // 댓글
  121. Route::get('/{code}/{postID}/comment', [CommentController::class, 'index'])->whereNumber('postID')->name('post.comment');
  122. Route::post('/{code}/{postID}/comment/store', [CommentController::class, 'store'])->whereNumber('postID')->name('post.comment.store');
  123. Route::put('/{code}/{postID}/comment/update', [CommentController::class, 'update'])->whereNumber('postID')->name('post.comment.update');
  124. Route::post('/{code}/{postID}/comment/reply', [CommentController::class, 'reply'])->whereNumber('postID')->name('post.comment.reply');
  125. Route::delete('/{code}/{postID}/comment/delete', [CommentController::class, 'delete'])->whereNumber('postID')->name('post.comment.delete');
  126. Route::post('/{code}/{postID}/comment/blame', [CommentController::class, 'blame'])->whereNumber('postID')->name('post.comment.blame');
  127. Route::post('/{code}/{postID}/comment/like', [CommentController::class, 'like'])->whereNumber('postID')->name('post.comment.like');
  128. Route::post('/{code}/{postID}/comment/dislike', [CommentController::class, 'dislike'])->whereNumber('postID')->name('post.comment.dislike');
  129. });
  130. /**
  131. |--------------------------------------------------------------------------
  132. | 태그
  133. |--------------------------------------------------------------------------
  134. */
  135. Route::prefix('tag')->name('tag.')->group(function()
  136. {
  137. Route::get('/', [TagController::class, 'index'])->name('index');
  138. Route::get('/posts', [TagController::class, 'posts'])->name('posts');
  139. });
  140. /**
  141. |--------------------------------------------------------------------------
  142. | 내 정보 수정
  143. |--------------------------------------------------------------------------
  144. */
  145. Route::prefix('account')->name('account.')->group(function()
  146. {
  147. // 내 정보
  148. Route::get('/', [Account\ProfileController::class, 'index'])->name('profile');
  149. // 비밀번호 확인
  150. Route::get('/certify', [Account\CertifyController::class, 'index'])->name('certify');
  151. Route::post('/certify/update', [Account\CertifyController::class, 'update'])->name('certify.update');
  152. // 회원 정보 수정
  153. Route::get('/modify', [Account\ModifyController::class, 'index'])->name('modify');
  154. Route::post('/modify/update', [Account\ModifyController::class, 'update'])->name('modify.update');
  155. // 회원 정보 수정 - 이메일 변경하기
  156. Route::get('/email', [Account\EmailController::class, 'index'])->name('email');
  157. Route::post('/email/update', [Account\EmailController::class, 'update'])->name('email.update');
  158. // 비밀번호 변경
  159. Route::get('/password', [Account\PasswordChangeController::class, 'index'])->name('password');
  160. Route::post('/password/update', [Account\PasswordChangeController::class, 'update'])->name('password.update');
  161. // 정기 비밀번호 변경 안내
  162. Route::get('/password/campaign', [Account\PasswordCampaignController::class, 'index'])->name('password.campaign');
  163. Route::post('/password/campaign/update', [Account\PasswordCampaignController::class, 'update'])->name('password.campaign.update');
  164. // 로그인 기록
  165. Route::get('/loginLog', [Account\LoginLogController::class, 'index'])->name('loginLog');
  166. Route::post('/loginLog', [Account\LoginLogController::class, 'index'])->name('loginLog');
  167. // 회원탈퇴
  168. Route::get('/leave', [Account\LeaveController::class, 'index'])->name('leave');
  169. Route::post('/leave/update', [Account\LeaveController::class, 'update'])->name('leave.update');
  170. // 작성 게시글
  171. Route::get('/post', [Account\PostController::class, 'index'])->name('post');
  172. Route::post('/post', [Account\PostController::class, 'index'])->name('post');
  173. Route::delete('/post/delete', [Account\PostController::class, 'delete'])->name('post.delete');
  174. // 작성 댓글
  175. Route::get('/comment', [Account\CommentController::class, 'index'])->name('comment');
  176. Route::post('/comment', [Account\CommentController::class, 'index'])->name('comment');
  177. Route::delete('/comment/delete', [Account\CommentController::class, 'delete'])->name('comment.delete');
  178. });
  179. // 관리자
  180. require_once ('admin.php');