SmsController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace App\Http\Controllers\Admin\Config\Test;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Config;
  6. use App\Models\SmsLib;
  7. class SmsController extends Controller
  8. {
  9. private Config $configModel;
  10. public function __construct()
  11. {
  12. $this->configModel = new Config();
  13. }
  14. /**
  15. * SMS 발송 확인
  16. * @method GET
  17. * @see /admin/config/test/sms
  18. */
  19. public function index()
  20. {
  21. return view('admin.config.test.sms', [
  22. 'subject' => '문자 발송 확인',
  23. 'smsNumber' => env('SMS_NUMBER')
  24. ]);
  25. }
  26. /**
  27. * 문자 발송 확인 실행
  28. * @method POST
  29. * @see /admin/config/test/sms
  30. */
  31. public function store(Request $request, SmsLib $smsLib)
  32. {
  33. $rules = [
  34. 'receive_number' => 'required|string|regex:/^(\d+)-(\d+)-(\d+)$/',
  35. ];
  36. $attributes = [
  37. 'receive_number' => '받는 번호'
  38. ];
  39. $posts = $this->validate($request, $rules, [], $attributes);
  40. $sendNumber = [ // 수신번호
  41. UID => $posts['receive_number']
  42. ];
  43. // 수신정보
  44. $sendData = [
  45. 'userID' => UID, // 수신자 PK
  46. 'subject' => '[' . date('Y-m-d H:i:s') . '] 문자 발송 확인',
  47. 'content' => configs('site_title'),
  48. 'isReserve' => 0,
  49. 'reserveAt' => null
  50. ];
  51. $result = $smsLib->send($sendNumber, $sendData);
  52. if(!$result) {
  53. return back()->withErrors($smsLib->errors())->withInput();
  54. }
  55. $message = '문자를 발송하였습니다.';
  56. return redirect()->route('admin.config.test.sms.index')->with('message', $message);
  57. }
  58. }