public function mpesoAgencies(Request $request) { $lastrunstatus = $request->json('lastrunstatus'); if ('success' == $lastrunstatus) { $response = $this->getHttpClient()->get('https://www.kimonolabs.com/api/dvpm3jde', ['query' => ['apikey' => config('services.kimonolabs.api_key'), 'kimmodify' => 1, 'kimbypage' => 1]]); $districts = json_decode($response->getBody(), true); app('db')->transaction(function () use($districts) { foreach ($districts as $district) { $eloquentDistrict = District::firstOrCreate(['name' => $district['district'], 'page' => $district['page']]); foreach ($district['neighborhoods'] as $neighborhood) { $eloquentNeighborhood = $eloquentDistrict->neighborhoods()->firstOrCreate(['name' => $neighborhood['name']]); foreach ($neighborhood['agencies'] as $agency) { $eloquentNeighborhood->agencies()->firstOrCreate(['address' => $agency['address'], 'name' => $agency['name']]); } } } }); } return $this->respondNoContent(); }
protected static function updateDB($data) { foreach ($data as $title) { if ($title['STUDENT ID'] != '') { //creating or updating districts $DDBNNN = preg_split('/(?<=[0-9])(?=[a-z]+)/i', $title['DDBNNN']); $district = District::firstOrCreate(['code' => $DDBNNN[0], 'system_id' => 1]); $district->code = $DDBNNN[0]; $district->system_id = 1; $district->title = 'District ' . $DDBNNN[0]; $district->save(); $organization = Organization::where(['code' => $DDBNNN[1]])->with(array('districts' => function ($query) use($district) { $query->where('district_id', $district->id); }))->first(); if (is_null($organization)) { // TODO figure out if this can be replaced with a firstOrCreate; $organization = new Organization(); } $organization->code = $DDBNNN[1]; $organization->title = $DDBNNN[1]; $organization->save(); if (!$organization->districts->contains($district->id)) { $organization->districts()->attach($district->id); } $user = User::firstOrCreate(['student_id' => $title['STUDENT ID']]); $user->student_id = $title['STUDENT ID']; $user->first_name = $title['FIRST NAME']; $user->last_name = $title['LAST NAME']; $user->sex = $title['SEX']; $user->dob = $title['BIRTH DT']; $user->save(); } } $notifier = new Notifier(); $notifier->to = Auth::user()->email; $notifier->subject = "Your import is completed at " . date('m-d-Y h:i:s A'); $notifier->template = "emails.import"; $notifier->attachData(['user' => Auth::user()]); $notifier->send(); }