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();
 }
Exemple #2
0
 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();
 }