CommonMethods.php_09-05 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace App\Helpers;
  3. use App\Companies;
  4. use Illuminate\Support\Facades\Crypt;
  5. use Str;
  6. use App\ApiTokens;
  7. use Aws\S3\S3Client;
  8. use Illuminate\Support\Facades\Auth;
  9. Class CommonMethods {
  10. public static function formatDate($date=""){
  11. if(empty($date))
  12. $date = now();
  13. return date('d, M Y',strtotime($date));
  14. }
  15. public static function formatDateTime($date=""){
  16. if(empty($date))
  17. $date = now();
  18. return date('Y-m-d h:i a',strtotime($date));
  19. }
  20. public static function input_string_sanitize($string){
  21. return htmlentities($string, ENT_QUOTES, 'UTF-8', false);
  22. }
  23. public static function format_report_number($id){
  24. return str_pad($id,6,0, STR_PAD_LEFT);
  25. }
  26. public static function generateRandomString($length = 8) {
  27. $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!%$#*&^(){}[]';
  28. $charactersLength = strlen($characters);
  29. $randomString = '';
  30. for ($i = 0; $i < $length; $i++) {
  31. $randomString .= $characters[rand(0, $charactersLength - 1)];
  32. }
  33. return $randomString;
  34. }
  35. public static function generate_user_name($restaurants){
  36. return Str::slug(strtolower(($restaurants).'-'.rand(1000,9999).'-'.substr(str_shuffle($restaurants),0,3)));
  37. }
  38. public static function encrypt($id){
  39. return Crypt::encryptString($id);
  40. }
  41. public static function decrypt($string){
  42. return Crypt::decryptString($string);
  43. }
  44. public static function fileSize($bytes){
  45. $kb = 1024;
  46. $mb = $kb * 1024;
  47. $gb = $mb * 1024;
  48. $tb = $gb * 1024;
  49. if (($bytes >= 0) && ($bytes < $kb)) {
  50. return $bytes . ' B';
  51. } elseif (($bytes >= $kb) && ($bytes < $mb)) {
  52. return ceil($bytes / $kb) . ' KB';
  53. } elseif (($bytes >= $mb) && ($bytes < $gb)) {
  54. return ceil($bytes / $mb) . ' MB';
  55. } elseif (($bytes >= $gb) && ($bytes < $tb)) {
  56. return ceil($bytes / $gb) . ' GB';
  57. } elseif ($bytes >= $tb) {
  58. return ceil($bytes / $tb) . ' TB';
  59. } else {
  60. return $bytes . ' B';
  61. }
  62. }
  63. public static function generateRequestID($user_id){
  64. return date('Ymdhis').'-'.$user_id;
  65. }
  66. public static function authenticate_token($token){
  67. $user = ApiTokens::where('api_token',$token)->first();
  68. if($user->users->is_active=="0" || $user->users->is_active==0){
  69. //dd($user->users->is_active);
  70. $response = [
  71. 'type' => 'error',
  72. 'message' => 'Account is inative, contact to administrator!',
  73. 'code' =>'X003'
  74. ];
  75. echo json_encode($response);
  76. exit;
  77. }
  78. return $user;
  79. }
  80. public static function sendResponse($result, $message)
  81. {
  82. $response = [
  83. 'type' => "success",
  84. 'data' => $result,
  85. 'message' => $message,
  86. ];
  87. return response()->json($response, 200,[],JSON_UNESCAPED_UNICODE);
  88. }
  89. public static function sendError($error, $errorMessages = [], $code = 404)
  90. {
  91. $response = [
  92. 'type' => 'error',
  93. 'message' => $error,
  94. 'code' =>$code
  95. ];
  96. if(!empty($errorMessages)){
  97. $response['data'] = $errorMessages;
  98. }
  99. return response()->json($response, 400);
  100. }
  101. public static function idFormat($restoId,$id){
  102. return str_pad($restoId,4,0, STR_PAD_LEFT).'-'.str_pad($id,6,0, STR_PAD_LEFT);
  103. }
  104. public static function idFormatItem($restoId,$order_id,$id){
  105. return str_pad($restoId,4,0, STR_PAD_LEFT).'-'.str_pad($order_id,6,0, STR_PAD_LEFT).'-'.str_pad($id,6,0, STR_PAD_LEFT);
  106. }
  107. public static function uploadFileToAWSCDN($budketName, $restoID ,$restoName ,$sourceFile,$fileName ){
  108. $s3 = new S3Client([
  109. 'version' => 'latest',
  110. 'region' => env('AWS_DEFAULT_REGION')
  111. ]);
  112. $bucket = $budketName;
  113. $image = "";
  114. try {
  115. // Upload data.
  116. $result = $s3->putObject([
  117. 'Bucket' => $bucket,
  118. 'Key' => env('BUCKET_FOLDER')."/".$restoID.'-'.\Illuminate\Support\Str::slug($restoName)."/".$fileName ,
  119. 'SourceFile' => $sourceFile,
  120. 'Body' => 'Hello, world!',
  121. 'ACL' => 'public-read'
  122. ]);
  123. // Print the URL to the object.
  124. $image = $result['ObjectURL'];
  125. $result = array('type'=>'success','url'=>$image);
  126. return $result;
  127. } catch (S3Exception $e) {
  128. $result = array('type'=>'error','message'=>$e->getMessage());
  129. return $result;
  130. }
  131. }
  132. public static function getRestuarantID(){
  133. // return 110;
  134. if(Auth::user()->role=='administrator')
  135. return Auth::id();
  136. else if(Auth::user()->role=='restaurant')
  137. return Auth::user()->restaurants->id;
  138. else
  139. return Auth::user()->resto_users->resto_id;
  140. }
  141. }