/** * 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']]); } }