public function subscriptioncallback(Request $request) { if ($request->has('hub_mode')) { if ($request->get('hub_mode') == 'subscribe') { print $request->get('hub_challenge'); exit(1); } } else { $objects = $request->json()->all(); foreach ($objects as $object) { $instagram = new InstagramAPI(); $instagramAccount = InstagramAccount::where('instagram_id', $object['object_id'])->first(); if ($instagramAccount->isSupplier()) { $instagram->setAccessToken($instagramAccount->access_token); $media = $instagram->getUserMedia($instagramAccount->instagram_id, 1); if ($media->meta->code == 200) { foreach ($media->data as $singleMedia) { $isKoalaProduct = false; foreach ($singleMedia->tags as $tag) { if ($tag == 'koalabazaar') { $isKoalaProduct = true; } } if ($isKoalaProduct && $singleMedia->type == 'image' && ProductsInstagram::where('id', '=', $singleMedia->id)->first() == null) { $caption = null; if (isset($singleMedia->caption)) { $caption = $singleMedia->caption->text; } $product = new Product(); $product->supplier_id = $instagramAccount->instagramable->id; $product->title = $caption; $product->description = $caption; $file = new FileEntry(); $status = $file->storeFromUrl($singleMedia->images->standard_resolution->url, $instagramAccount->instagramable->id, 'product'); if ($status) { $product->image = $file->filename; } else { $product->image = null; } if ($caption == null) { $product->price = null; $product->currency_unit_id = null; } else { $text = mb_strtolower($caption, 'UTF-8'); $units = CurrencyUnit::all(); $estimatedPrice = null; $currencyUnit = null; foreach ($units as $unit) { $firstOccurence = stripos($text, $unit->unit_short_name); if ($firstOccurence) { for ($i = $firstOccurence - 1; $i >= 0; $i--) { $charAt = substr($text, $i, 1); if (is_numeric($charAt) || $charAt == '.') { $estimatedPrice = $charAt . $estimatedPrice; } else { $i = 0; } } $currencyUnit = $unit->id; break; } } if ($estimatedPrice) { $product->price = $estimatedPrice; $product->currency_unit_id = $currencyUnit; } else { $product->price = null; $product->currency_unit_id = null; } } if ($product->price == null || $product->currency_unit_id == null) { $product->is_active = false; } else { $product->is_active = true; } $product->save(); foreach ($singleMedia->tags as $tag) { $relatedCategories = Category::where('keywords', 'LIKE', '%' . mb_strtolower($tag, 'UTF-8') . '%')->get(); foreach ($relatedCategories as $relatedCategory) { if ($product->categories()->where('id', $relatedCategory->id)->first()) { } else { $product->categories()->attach($relatedCategory); } } } $productInstagram = new ProductsInstagram(); $productInstagram->product_id = $product->id; $productInstagram->url = $singleMedia->link; $productInstagram->id = $singleMedia->id; $productInstagram->image_url = $singleMedia->images->standard_resolution->url; $productInstagram->caption = $caption; $productInstagram->created_on_instagram = date('Y-m-d h:i:sa', $singleMedia->created_time); $productInstagram->save(); } } } } } } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if (!Product::find($id)) { // return view('dashboard.supplierProfileEdit'); return redirect()->back()->withErrors(['messages' => "ürün bulunamadı"]); } $product = Product::find($id); if (Auth::user()->id != $product->supplier_id) { //return view('dashboard.supplierProfileEdit'); return redirect()->back()->withErrors(['messages' => "ürün size ait değil"]); } $rules = array('title' => 'required', 'price' => 'required|numeric', 'is_active' => 'required'); // do the validation ---------------------------------- // validate against the inputs from our form $validator = Validator::make($request->all(), $rules); // check if the validator failed ----------------------- if ($validator->fails()) { // get the error messages from the validator $updateProduct = $validator->messages(); // redirect our user back to the form with the errors from the validator // return view('dashboard.supplierProfileEdit'); return back()->withInput()->withErrors($validator); } else { $product->title = $request->input('title'); $product->description = $request->input('description'); $product->price = $request->input('price'); $product->currency_unit_id = CurrencyUnit::where('unit_short_name', 'try')->first()->id; if ($request->input('is_active') == '1') { $product->is_active = $product->isActivable() ? true : false; } else { $product->is_active = false; } $product->update(); $product->categories()->detach(); foreach ($request->input('categories') as $category) { if (Category::find($category)) { $product->categories()->attach(Category::where('id', $category)->first()); } } return redirect()->back()->with('success', ['Ürün bilgileri güncellendi']); } }