input('search'); $client_id = session('current_user.org_id'); $clients_url = "messages/client/$client_id?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($clients_url); $result_arr = json_decode($result); $items = collect($result_arr->content); // Convert API array to Collection if ($search) { $items = $items->filter(function ($item) use ($search) { return stripos($item['name'], $search) !== false; }); } $currentPage = Paginator::resolveCurrentPage() ?: 1; $perPage = $result_arr->size; $currentPageItems = $items->slice(($currentPage - 1) * $perPage, $perPage)->all(); $paginatedItems = new LengthAwarePaginator( $currentPageItems, $items->count(), $perPage, $currentPage, ['path' => $request->url(), 'query' => $request->query()] ); } public function index(){ //dump(session('current_user')); $client_id = session('current_user.org_id'); $clients_url = "messages/client/$client_id?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($clients_url); $result_arr = json_decode($result); // dump($result_arr); $data = [ 'page_title' => 'SMS Traffic', 'traffic_arr' => $result_arr ]; return view('client-traffic.index-test', $data); } public function indexTabulator(Request $request){ $client = new Client(); // Construct the URL with pagination parameters from the request $page = $request->input('page', 0); // Note: This API seems 0-indexed $size = $request->input('size', 20); /* $response = $client->request('GET', 'http://62.171.149.214:9990/api/messages/client/1?page=0&size=20&sort=createdAt,desc', [ 'query' => [ 'page' => $page, 'size' => $size, ], 'headers' => [ 'Accept' => 'application/json', ] ]); $data = json_decode($response->getBody(), true); */ $client_id = session('current_user.org_id'); $clients_url = "messages/client/1?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($clients_url); // $content_only = collect($result['content'])->toArray(); $data = json_decode($result, true); // dd($data['content']); return response()->json($data); // return response()->json([ // 'last_page' => $data['totalPages'], // 'data' => $data['content'], // 'total' => $data['totalElements'] // ]); } public function getClientApps(){ //dump(session('current_user')); $client_id = session('current_user.org_id'); $apps_url = "applications/client/$client_id?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($apps_url); $result_arr = json_decode($result); $data = [ 'page_title' => 'Applications', 'apps_arr' => $result_arr ]; return view('client-traffic.client-apps', $data); } public function smsForm(){ //check if client has an app $data = [ 'page_title' => 'Send SMS', ]; return view('client-traffic.send-sms', $data); } public function store(Request $request){ $this->validate($request, [ 'message' => 'required', 'sender_id' => 'required|max:11', 'recipients_file'=> 'mimes:csv,txt|max:4096', 'pasted' => 'sometimes', // 'status' => 'required', ]); $recipients_arr = []; // $create_client_url = "clients"; // $result = ApiCalls::CurlPost(json_encode($client_arr), $create_client_url); if ($request->recipient_file && $request->pasted) { // code... } if ($request->filled('pasted')) { // code... $pasted_arr = explode(", ", $request->pasted); foreach ($pasted_arr as $value) { // code... if (ctype_digit($value) && (strlen($value) == 11 || strlen($value) == 12)) { // Valid $recipients_arr[] = trim($value); } else{ continue; } } } if ($request->hasFile('recipients_file')) { $file = fopen($request->file('recipients_file'), 'r'); $data = fgetcsv($file, 1000, ','); foreach ($data as $value) { $recipients_arr[] = trim($value); } fclose($file); } $recipients_arr = array_unique($recipients_arr); foreach ($recipients_arr as $phone) { $payload = [ 'from' => $request->sender_id, 'to' => $phone, 'refId' => uniqid(), 'message' => $request->message ]; \Log::info('Payload details ' . json_encode($payload)); $send_sms_url = "sms/send"; #$result = ApiCalls::CurlPost($send_sms_url, $payload); #\Log::info('Message Successfully submitted ' . $result); } // $result_arr = json_decode($result); Session::flash('success_message', 'Message successfully submitted for delivery!'); return redirect("send-sms"); } public function newAppStore(Request $request){ $this->validate($request, [ 'application_name' => 'required', 'orgId' => 'required', 'application_type'=> 'required', ]); $payload['name'] = $request->application_name; $payload['type'] = $request->application_type; $payload['orgId'] = $request->orgId; $create_application_url = "applications"; $result = ApiCalls::CurlPost(json_encode($payload), $create_application_url); \Log::info('Application creation request ' . json_encode($payload)); \Log::info('Application Successfully created ' . $result); $result_arr = json_decode($result, true); //save application in a db $retval = Models\ClientApplication::create($result_arr); return response()->json(json_decode($result, true)); } }