/** * Create new report * * @param Requests\AddReportRequest|Request $request */ public function store(Request $request) { $session = OauthCustomSession::find(get_token($request)); $validator = \Validator::make($request->all(), ['name' => 'bail|required', 'description' => 'required']); if ($validator->fails()) { return response(['error' => $validator->errors()->getMessages()]); } //check if reportname does not exist $params = $request->all(); //get author $user = $this->person->get('person_' . $session->person_id); //init default values $id = $this->report->counter('report_counter', ['initial' => 1000, 'value' => 1]); $params['person_id'] = (int) $session->person_id; $params['author'] = isset($user['username']) ? $user['username'] : ''; $params['report_type'] = isset($params['report_type']) ? (int) $params['report_type'] : 0; $params['is_archive'] = isset($params['is_archive']) ? $params['is_archive'] : 'N'; $resp = $this->report->insert($id, $params); if (!isset($resp['error'])) { return response(['success' => 'Report created.', 'data' => $this->report->respondWithItem($resp, new ReportTransformer())]); } //error occur rollback counter $params['id'] = $this->person->counter('person_counter', ['initial' => 1000, 'value' => -1]); return response(['error' => $resp['error']]); }
/** * Create new report * * @param Requests\AddItemRequest|Request $request * * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response */ public function store(Request $request) { $session = OauthCustomSession::find(get_token($request)); $params = $request->all(); $validator = \Validator::make($request->all(), ['comment' => 'bail|required', 'item_id' => 'required']); if ($validator->fails()) { return response(['error' => $validator->errors()->getMessages()]); } //init default values $id = $this->model->counter('item_comment_counter', ['initial' => 1000, 'value' => 1]); $params['person_id'] = (int) $session->person_id; $params['item_id'] = (int) my_decode($params['item_id']); $resp = $this->model->insert($id, $params); if (!isset($resp['error'])) { return response(['success' => 'Comment created.', 'data' => $this->model->respondWithItem($resp, new ItemCommentTransformer())]); } //error occur rollback counter $params['id'] = $this->model->counter('item_comment_counter', ['initial' => 1000, 'value' => -1]); return response(['error' => $resp['error']]); }
public function index(Request $request) { $params = $request->all(); $session = OauthCustomSession::find(get_token($request)); if ($session->role == 'U') { return response(['error' => 'User not authorize to this resource.']); } $data['items'] = []; $data['totalRecords'] = 0; $data['limit'] = isset($params['limit']) ? $params['limit'] : 5; $data['skip'] = isset($params['skip']) ? $params['skip'] : 0; //get all $option = ['limit' => $data['limit'], 'skip' => $data['skip']]; $response = $this->person->all($option); if (!isset($response['error'])) { $data['totalRecords'] = $response['totalRecords']; foreach ($response['data'] as $row) { //get users report count $reports = $this->report->getReportsByPerson($row['id']); $row['id'] = my_encode($row['id']); $row['totalIReport'] = 0; $row['totalGReport'] = 0; if (!empty($reports['data'])) { foreach ($reports['data'] as $srow) { if ($srow['report_type'] == 0) { $row['totalIReport'] += 1; } else { $row['totalGReport'] += 1; } } } $data['items'][] = $row; } return response(['data' => $data]); } else { return response(['error' => $response['error']]); } }
Route::get('/admin', 'Tools\\SetupController@addAdmin'); /* |-------------------------------------------------------------------------- | API Resource (REST) |-------------------------------------------------------------------------- | | This route contains all the resource of the api */ Route::post('oauth/access_token', function () { $resp = Authorizer::issueAccessToken(); if ($resp) { session()->put($resp['access_token'], session()->get('user')); $resp['user'] = session()->get('user'); //store to custom oauth session $data = ['id' => $resp['access_token'], 'person_id' => my_decode($resp['user']['id']), 'username' => $resp['user']['username'], 'role' => $resp['user']['role']]; \App\OauthCustomSession::create($data); } return Response::json($resp); }); //public api Route::group(['prefix' => 'api'], function () { Route::post('account/register', 'Api\\AccountController@register'); Route::post('account/forgot_password', 'Api\\AccountController@forgotPassword'); }); Route::group(['middleware' => ['api', 'oauth'], 'prefix' => 'api'], function () { Route::resource('users', 'Api\\UsersController', ['except' => ['create', 'edit']]); Route::get('users/{userId}/reports', 'Api\\ReportsController@index'); Route::resource('reports', 'Api\\ReportsController', ['except' => ['index', 'create', 'edit']]); Route::get('reports/{reportId}/items', 'Api\\ItemsController@index'); Route::resource('items', 'Api\\ItemsController', ['except' => ['index', 'create', 'edit']]); Route::get('items/{itemId}/comments', 'Api\\ItemCommentsController@index');