$sponsor = new \Conftrack\Model\Sponsor($this->getContainer()->get('db')); $sponsor->findById($args['sponsorId']); $loadData = ['description' => $body['description']]; if (isset($body['name'])) { $loadData['name'] = $body['name']; } $sponsor->load($loadData); try { $sponsor->verify(); $sponsor->save(); $data['success'] = true; $data['message'] = 'Sponsor saved successfully'; } catch (\Exception $e) { $data['message'] = 'There was an error saving the sponsor'; } $data = array_merge($data, ['sponsor' => $sponsor->toArray(), 'action' => 'edit', 'users' => $users->toArray(true), 'sponsorUsers' => $sponsor->users->toArray(true)]); $this->view->render($response, 'sponsor/create.twig', $data); }); $app->post('{sponsorId}/user', function ($request, $response, $args) { $data = ['success' => false]; $body = $request->getParsedBody(); $sponsorUser = new \Conftrack\Model\SponsorUser($this->getContainer()->get('db')); $sponsorUser->load(['user_id' => $body['userId'], 'sponsor_id' => $args['sponsorId']]); try { $sponsorUser->verify(); $sponsorUser->save(); $data['success'] = true; $data['message'] = 'User added successfully'; } catch (\Exception $e) { $data['message'] = "Error: " . implode("\n", $sponsorUser->getMessages()); }
<?php $app->group('/admin', function () use($app) { /* Default page route */ $app->get('/users', function ($request, $response, $args) { $users = new \Conftrack\Collection\Users($this->getContainer()->get('db')); $users->findAll(); $data = ['users' => $users->toArray(true)]; $this->view->render($response, 'admin/users.twig', $data); }); $app->post('/users/status', function ($request, $response, $args) { $data = ['success' => false]; $body = $request->getParsedBody(); $user = new \Conftrack\Model\User($this->getContainer()->get('db')); $user->findById($body['userId']); if ($user->id == null) { throw new \Exception('User not found!'); } else { $user->status == 'active' ? $user->disable() : $user->enable(); $data['success'] = true; } return $response->withJson($data); }); $app->get('/groups', function ($request, $response, $args) { $groups = new \Conftrack\Collection\Groups($this->getContainer()->get('db')); $groups->findAll(); $data = ['groups' => $groups->toArray(true)]; $this->view->render($response, 'groups/index.twig', $data); }); $app->get('/groups/create', function ($request, $response, $args) { $data = [];