Viewing File: /home/ubuntu/vedadeals-backend-base/app/Http/Controllers/Api/LookupApiController.php

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use App\Helpers\Helper;

use DB, Exception, Setting, Hash, Storage;

use App\Models\{ User, StaticPage, ContactRequest };

class LookupApiController extends Controller
{
    protected $loginUser;

    protected $skip, $take;

    public function __construct(Request $request) {

        info(url()->current());

        info("Request Data".print_r($request->all(), true));
        
        $this->loginUser = User::find($request->id);

        $this->skip = $request->skip ?: 0;

        $this->take = $request->take ?: (Setting::get('admin_take_count') ?: TAKE_COUNT);

        $this->timezone = $this->loginUser->timezone ?? "America/New_York";

        $request->request->add(['timezone' => $this->timezone]);

    }

    /**
     * @method static_pages()
     *
     * @uses to the static page details
     *
     * @created Karthick
     *
     * @updated 
     *
     * @param 
     * 
     * @return
     */
    public function static_pages(Request $request) {

        try {

            $rules = ['static_page_unique_id' => ['exists:static_pages,unique_id']];

            $custom_errors = ['unique_id.exists' => api_error(1009, 'static page')];

            Helper::custom_validator($request->all(), $rules, $custom_errors);

            if($request->static_page_unique_id) {

                $base_query = StaticPage::where('unique_id', $request->static_page_unique_id)->Approved()->orderBy('updated_at', 'desc');

            } else {

                $base_query = StaticPage::Approved()->orderBy('updated_at', 'desc');
            }

            $static_pages = $base_query->skip($this->skip)->take($this->take)->get();

            $static_pages->each(function($static_page) {

                $static_page->created_formatted = common_date($static_page->created_at, $this->timezone, 'd M Y');

                $static_page->updated_formatted = common_date($static_page->updated_at, $this->timezone, 'd M Y');

            });

            $data['static_pages'] = $static_pages;

            return $this->sendResponse("", "", $data);

        } catch (Exception $e) {

            return $this->sendError($e->getMessage(), $e->getCode());
        }
    }

    /**
     * @method static_pages_view()
     *
     * @uses to get the pages
     *
     * @created Arun
     *
     * @updated 
     *
     * @param - 
     *
     * @return JSON Response
     */

    public function static_pages_view(Request $request) {

        try {

            $rules = [ 'static_page_unique_id' => 'required|exists:static_pages,unique_id' ];

            Helper::custom_validator($request->all(), $rules, $custom_errors = []);

            $static_page = StaticPage::Approved()->firstWhere('unique_id' , $request->static_page_unique_id);

            $response_array = ['success' => true , 'data' => $static_page];

            return response()->json($response_array);

        } catch(Exception $e) {

            return $this->sendError($e->getMessage(), $e->getCode());
        }

    }

    /**
     * @method contact_requests_save()
     *
     * @uses to save a contact request details
     *
     * @created Karthick
     *
     * @updated 
     *
     * @param
     * 
     * 
     * @return success / failure message
     */
    public function contact_requests_save(Request $request) {

        try {

            $rules = [ 
                'name' => ['required'],
                'mobile' => ['nullable', 'digits_between:6,13'],
                'email' => ['required', 'email'],
                'query' => ['required']
            ];

            $validated = Helper::custom_validator($request->all(), $rules, $custom_errors = []);

            DB::beginTransaction();

            $contact_request = ContactRequest::Create($validated);

            if(!$contact_request) {

                throw new Exception(api_error(104), 104);
            }

            DB::commit();

            return $this->sendResponse(api_success(152), 152 , []);

        } catch (Exception $e) {

            DB::rollback();

            return $this->sendError($e->getMessage(), $e->getCode());
        }
    }
}
Back to Directory File Manager