Exemplo n.º 1
0
 private function getExceptionData($exception)
 {
     $data = [];
     $data['host'] = Request::server('HTTP_HOST');
     $data['method'] = Request::method();
     $data['fullUrl'] = Request::fullUrl();
     if (php_sapi_name() === 'cli') {
         $data['host'] = parse_url(config('app.url'), PHP_URL_HOST);
         $data['method'] = 'CLI';
     }
     $data['exception'] = $exception->getMessage();
     $data['error'] = $exception->getTraceAsString();
     $data['line'] = $exception->getLine();
     $data['file'] = $exception->getFile();
     $data['class'] = get_class($exception);
     $data['storage'] = array('SERVER' => Request::server(), 'GET' => Request::query(), 'POST' => $_POST, 'FILE' => Request::file(), 'OLD' => Request::hasSession() ? Request::old() : [], 'COOKIE' => Request::cookie(), 'SESSION' => Request::hasSession() ? Session::all() : [], 'HEADERS' => Request::header());
     $data['storage'] = array_filter($data['storage']);
     $count = $this->config['count'];
     $data['exegutor'] = [];
     $data['file_lines'] = [];
     $file = new SplFileObject($data['file']);
     for ($i = -1 * abs($count); $i <= abs($count); $i++) {
         list($line, $exegutorLine) = $this->getLineInfo($file, $data['line'], $i);
         $data['exegutor'][] = $exegutorLine;
         $data['file_lines'][$data['line'] + $i] = $line;
     }
     // to make Symfony exception more readable
     if ($data['class'] == 'Symfony\\Component\\Debug\\Exception\\FatalErrorException') {
         preg_match("~^(.+)' in ~", $data['exception'], $matches);
         if (isset($matches[1])) {
             $data['exception'] = $matches[1];
         }
     }
     return $data;
 }
 /**
  * Register the application services.
  *
  * @return void
  */
 public function register()
 {
     $configPath = __DIR__ . '/../config/sql-logging.php';
     $this->mergeConfigFrom($configPath, 'sql-logging');
     if (config('sql-logging.log', false)) {
         Event::listen('illuminate.query', function ($query, $bindings, $time) {
             $data = compact('bindings', 'time');
             // Format binding data for sql insertion
             foreach ($bindings as $i => $binding) {
                 if ($binding instanceof \DateTime) {
                     $bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
                 } else {
                     if (is_string($binding)) {
                         $bindings[$i] = "'{$binding}'";
                     }
                 }
             }
             // Insert bindings into query
             $query = str_replace(array('%', '?'), array('%%', '%s'), $query);
             $query = vsprintf($query, $bindings);
             $log = new Logger('sql');
             $log->pushHandler(new StreamHandler(storage_path() . '/logs/sql-' . date('Y-m-d') . '.log', Logger::INFO));
             // if log request data
             if (config('sql-logging.log_request', false)) {
                 $data['request_path'] = Request::path();
                 $data['request_method'] = Request::method();
                 $data['request_data'] = Request::all();
             }
             // add records to the log
             $log->addInfo($query, $data);
         });
     }
 }
Exemplo n.º 3
0
 public function anyManageShop()
 {
     $product_types = ProductTypes::where('hidden', 0)->orderBy('name', 'ASC')->get();
     $success_msg = [];
     $error_msg = [];
     $rules = ['product_name' => 'required', 'product_category' => 'required', 'short_description' => 'required', 'product_description' => 'required', 'price' => 'required', 'quantity' => 'required|numeric'];
     $validator = Validator::make(Input::all(), $rules);
     if (Request::method() == 'POST') {
         if (!$validator->fails()) {
             $category_select = Input::get('product_category');
             $category = ProductTypes::find($category_select);
             if ($category) {
                 /** @var Products $product */
                 $product = new Products();
                 $product->uid = Uuid::generate()->string;
                 $product->name = Input::get('product_name');
                 $product->short_description = Input::get('short_description');
                 $product->description = Input::get('product_description');
                 $product->price_in_cents = Input::get('price') * 100;
                 $product->quantity = Input::get('quantity');
                 $product->product_type_id = $category->id;
                 $product->allow_review = 1;
                 $product->save();
                 if ($product->save()) {
                     if (Input::file('main_product_image')) {
                         $filename = Input::file('main_product_image')->getClientOriginalName();
                         $destination = storage_path() . '/app/upload/';
                         $file_path = Input::file('main_product_image')->move($destination, $filename);
                         //                            $diskLocal = Storage::disk('local');
                         $product_image = new ProductImages();
                         $product_image->url = $filename;
                         $product_image->product_id = $product->id;
                         $product_image->name = $filename;
                         $product_image->is_primary = 1;
                         $product_image->save();
                     }
                 }
                 $success_msg[] = 'Product Added!';
             } else {
                 $error_msg[] = 'Whoops! Sorry, product category not found';
             }
         } else {
             return Redirect::back()->withErrors($validator->messages())->withInput(Input::all());
         }
     }
     return View::make('shop.manage_store', ['product_types' => $product_types, 'success_msg' => $success_msg, 'error_msg' => $error_msg]);
 }
Exemplo n.º 4
0
 public function anyAddInvoiceItems()
 {
     $invoice_details = InvoiceDetails::get();
     $items = InvoiceItems::all();
     if (Request::method() == 'POST') {
         $invoice_items = new InvoiceItems();
         $invoice_items->invoice_id = Input::get('invoice_id');
         $invoice_items->quantity = Input::get('quantity');
         $invoice_items->product = Input::get('product');
         $invoice_items->price_in_cents = Input::get('price') * 100;
         $invoice_items->currency_code = Input::get('currency_code');
         $invoice_items->save();
         return Redirect::back()->with('success', 'Items Added!');
     } else {
         return View::make('invoice.invoice_items', ['invoices' => $invoice_details, 'invoice_items' => $items]);
     }
 }
Exemplo n.º 5
0
 /**
  * Transform an exception to attachment array for slack post
  *
  * @param E $e
  *
  * @return array
  */
 protected static function exceptionToSlackAttach(E $e)
 {
     $fields = [];
     $addToField = function ($name, $value, $short = false) use(&$fields) {
         if (!empty($value)) {
             $fields[] = ["title" => $name, "value" => $value, "short" => $short];
         }
     };
     $addToField("Exception", get_class($e), true);
     $addToField("Hash", ExceptionHelper::hash($e), true);
     $addToField("Http code", ExceptionHelper::statusCode($e), true);
     $addToField("Code", $e->getCode(), true);
     $addToField("File", $e->getFile(), true);
     $addToField("Line", $e->getLine(), true);
     $addToField("Request url", Request::url(), true);
     $addToField("Request method", Request::method(), true);
     $addToField("Request param", json_encode(Request::all()), true);
     return ["color" => "danger", "title" => $e->getMessage(), "fallback" => !empty($e->getMessage()) ? $e->getMessage() : get_class($e), "fields" => $fields, "text" => $e->getTraceAsString()];
 }
 /**
  * Update item.
  *
  * @return \Modules\Articles\Entities\Article
  */
 public function update($id, &$context)
 {
     $article = $this->findById($id);
     if (Request::method() == 'PATCH') {
         // restore
         if (Request::has('restore') && (int) Request::get('restore')) {
             $article->restore();
             $context = 'restored';
             return $article;
         } else {
             $data = array_merge($article->toArray(), Request::except($this->publishing_columns));
             // exclude missing keys
             $domain_data = CoreRequest::only($this->publishing_columns);
             // process domain data
             $article_data = is_null($article->data) ? [] : $article->data->toArray();
             $domain_data = array_merge(Arr::only($article_data, $this->publishing_columns), $domain_data);
         }
     } else {
         $input = Request::except($this->publishing_columns);
         $domain_data = Request::only($this->publishing_columns);
         // validate
         $data = $this->validate($input, $article->id);
         // slug is slug
         $data['slug'] = Str::slug(Arr::get($data, 'slug') ?: $data['title']);
     }
     // update
     $article->update($data);
     //
     // update data
     //
     // create
     if (is_null($article->data)) {
         (new ArticleDomainDataRepository())->create($article->toArray() + $domain_data);
     } else {
         $article->data()->update(ArticleDomainDataRepository::validate($domain_data) + ['modified_by' => Request::header('UID', 0)]);
         $article->data()->touch();
     }
     return $article;
 }
Exemplo n.º 7
0
 public function anyUpdateStatus($booking_uid, $status)
 {
     $booking = Bookings::where('uid', '=', $booking_uid)->first();
     $error_msg = [];
     $tz = new \DateTimeZone('NZ');
     $now = new \DateTime(date('Y-m-d H:i:s'));
     $now->setTimezone($tz);
     $current_date_time = $now->format('Y-m-d H:i:s');
     $success = false;
     $booking_date = Input::get('booking_date');
     $booking_time = Input::get('booking_time');
     if (Request::method() == 'GET') {
         return view('booking.update_status', ['booking' => $booking, 'success' => $success, 'status' => $status, 'error_msg' => $error_msg]);
     } else {
         if ($booking) {
             if ($status == 'consulted') {
                 $booking->pending = 0;
                 $booking->consulted = 1;
                 $booking->completed = 0;
                 $booking->cancelled = 0;
                 $booking->consulted_at = $current_date_time;
                 $booking->save();
                 $success = true;
             } elseif ($status == 'completed') {
                 if ($booking_date && $booking_time) {
                     $booking->pending = 0;
                     $booking->consulted = 0;
                     $booking->completed = 1;
                     $booking->cancelled = 0;
                     $booking->completed_at = $current_date_time;
                     $booking->booking_date = date('Y-m-d', strtotime($booking_date));
                     $booking->booking_time = date('H:i:s', strtotime($booking_time));
                     $booking->save();
                     $success = true;
                 } else {
                     $error_msg[] = 'Booking date and booking time are required.';
                     $success = false;
                 }
             } elseif ($status == 'cancelled') {
                 $booking->pending = 0;
                 $booking->consulted = 0;
                 $booking->completed = 0;
                 $booking->cancelled = 1;
                 $booking->cancelled_at = $current_date_time;
                 $booking->save();
                 $success = true;
             } else {
                 $error_msg[] = 'No status selected';
                 $success = false;
             }
             if ($success) {
                 return Redirect::back()->with('success', $success);
             } else {
                 return view('booking.update_status', ['booking' => $booking, 'success' => $success, 'status' => $status, 'error_msg' => $error_msg]);
             }
         } else {
             return Redirect::back()->with(['success', $success, 'error_msg', $error_msg]);
         }
     }
 }
 public function validateSignedURL($actual_url, $signed_url, $substitions)
 {
     $current_route = Request::route();
     $current_route_name = $current_route->getName();
     if (isset($substitions[$current_route_name])) {
         $substition = $substitions[$current_route_name];
         // make sure the host of the signed URL matches the host of the substitution URL
         if (isset($substition['host'])) {
             $signed_host = $this->getHostFromURL($signed_url);
             $allowed_host = $substition['host'];
             if ($signed_host != $allowed_host) {
                 Log::debug("HOST MISMATCH: \$signed_host={$signed_host} \$allowed_host={$allowed_host}");
                 // no host match - return false
                 return false;
             }
         }
         // check the route
         $substitute_route = new Route($current_route->getMethods(), $substition['route'], []);
         $signed_request = \Illuminate\Http\Request::create($signed_url, Request::method());
         if ($substitute_route->matches($signed_request)) {
             // the allowed substitute route matches the signed request
             return true;
         }
         Log::debug("ROUTE MISMATCH: pathinfo=" . json_encode(Request::getFacadeRoot()->getPathInfo()) . " allowed route={$substition['route']}");
     }
     // this signed URL was not valid
     return false;
 }
Exemplo n.º 9
0
 /**
  * Gets the Method of the Request
  * @return string|null Possible values are null or GET, POST, DELETE, PUT, etc...
  */
 protected function getMethod()
 {
     $method = Request::method();
     if (!empty($method)) {
         return $method;
     } else {
         return null;
     }
 }
Exemplo n.º 10
0
 public function __construct()
 {
     $this->result['meta'] = ['url' => Request::url(), 'method' => Request::method()];
 }
Exemplo n.º 11
0
 public function getRulesAttribute()
 {
     if ($this->rulesParsed) {
         return $this->rules;
         //Prevents 'required' and update IDS being added many times
     }
     if ($this->id) {
         //Existing record
         foreach ($this->unique as $value) {
             //Stops the unique values from ruining everything
             $this->rules[$value] = $this->rules[$value] . "," . $this->id;
         }
         $this->rules = AddRule($this->rules, $this->onUpdateRequired, 'required');
         //Need to require things after appending the ID
     }
     if (Request::method() == "POST" || Request::method() == "GET") {
         //Initial create
         $this->rules = AddRule($this->rules, $this->onCreateRequired, 'required');
         //return $this->rules; //DOn't add on things that aren't actual validation rules
     }
     $this->rulesParsed = true;
     return $this->rules;
 }