Example #1
0
 /**
  * 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']]);
 }
Example #3
0
 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']]);
     }
 }
Example #4
0
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');