/home/techb158/ileadtechnology.com/SSM/app/Repositories/resource
NameSizeModeActions
AssignmentRepository.php97100644editdlrm
LessonPlanRepository.php116050644editdlrm
NotesRepository.php81560644editdlrm
SyllabusRepository.php135140644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/app/Repositories/resource/NotesRepository.php (8156B)
notes = $notes; $this->upload = $upload; $this->course_group = $course_group; $this->subject = $subject; $this->student = $student; } /** * Get notes query * * @return Notes query */ public function getQuery() { return $this->notes; } /** * Count Notes * * @return integer */ public function count() { return $this->notes->filterBySession()->count(); } /** * List all notes by title & id * * @return array */ public function listAll() { return $this->notes->filterBySession()->get()->pluck('title', 'id')->all(); } /** * Get all notess * * @return array */ public function getAll() { return $this->notes->all(); } /** * Find notes with given id. * * @param integer $id * @return Notes */ public function find($id) { return $this->notes->info()->filterBySession()->filterById($id)->first(); } /** * Find notes with given id or throw an error. * * @param integer $id * @return Notes */ public function findOrFail($id, $field = 'message') { $notes = $this->notes->info()->filterBySession()->filterById($id)->first(); if (! $notes) { throw ValidationException::withMessages([$field => trans('resource.could_not_find_notes')]); } return $notes; } /** * Find notes with given uuid. * * @param string $uuid * @return Notes */ public function findByUuid($uuid) { return $this->notes->info()->filterBySession()->filterByUuid($uuid)->first(); } /** * Find notes with given uuid or throw an error. * * @param string $uuid * @return Notes */ public function findByUuidOrFail($uuid, $field = 'message') { $notes = $this->notes->info()->filterBySession()->filterByUuid($uuid)->first(); if (! $notes) { throw ValidationException::withMessages([$field => trans('resource.could_not_find_notes')]); } return $notes; } /** * Get all filtered data * * @param array $params * @return Notes */ public function getData($params) { $sort_by = gv($params, 'sort_by', 'created_at'); $order = gv($params, 'order', 'desc'); $title = gv($params, 'title'); $batch_id = gv($params, 'batch_id'); $batch_id = is_array($batch_id) ? $batch_id : ($batch_id ? explode(',', $batch_id) : []); $query = $this->notes->info()->filterBySession()->filterByTitle($title); if (\Auth::user()->hasAnyRole([ config('system.default_role.parent'), config('system.default_role.student'), ]) ) { $student_batch_ids = getAuthUserBatchId(); $batch_id = $batch_id ? array_intersect($student_batch_ids, $batch_id) : $student_batch_ids; } $batch_id = array_unique($batch_id); if (count($batch_id)) { $query->whereHas('subject', function ($q) use ($batch_id) { $q->whereIn('batch_id', $batch_id); }); } return $query->orderBy($sort_by, $order); } /** * Paginate all notes using given params. * * @param array $params * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function paginate($params) { $page_length = gv($params, 'page_length', config('config.page_length')); return $this->getData($params)->paginate($page_length); } /** * Get all filtered data for printing * * @param array $params * @return Notes */ public function print($params) { return $this->getData($params)->get(); } /** * Get pre requisite * * @return Array */ public function getPreRequisite() { $batches = $this->course_group->getBatchOption(); return compact('batches'); } /** * Get course filters. * * @return Array */ public function getFilters() { return $this->getPreRequisite(); } /** * Create a new notes. * * @param array $params * @return Notes */ public function create($params) { $notes = $this->notes->forceCreate($this->formatParams($params)); $this->processUpload($notes, $params); return $notes; } /** * Prepare given params for inserting into database. * * @param array $params * @param string $type * @return array */ private function formatParams($params, $notes_id = null) { $title = gv($params, 'title'); $description = gv($params, 'description'); $subject_id = gv($params, 'subject_id'); $formatted = [ 'subject_id' => $subject_id, 'title' => $title, 'description' => cleanBody($description), 'options' => [] ]; if (! $notes_id) { $formatted['upload_token'] = gv($params, 'upload_token'); $formatted['uuid'] = Str::uuid(); $formatted['employee_id'] = \Auth::user()->Employee->id; } return $formatted; } /** * Upload attachment * * @param Notes $notes * @param array $params * @param string $action * @return void */ public function processUpload(Notes $notes, $params = array(), $action = 'create') { $upload_token = gv($params, 'upload_token'); if ($action === 'create') { $this->upload->store($this->module, $notes->id, $upload_token); } else { $this->upload->update($this->module, $notes->id, $upload_token); } } /** * Check Notes accessibility. * * @param Notes $notes * * @return boolean */ public function isAccessible(Notes $notes) { if (\Auth::user()->hasAnyRole([ config('system.default_role.parent'), config('system.default_role.student'), ]) ) { $student_batch_ids = getAuthUserBatchId(); if (! in_array($notes->subject->batch_id, $student_batch_ids)) { throw ValidationException::withMessages(['message' => trans('user.permission_denied')]); } } } /** * Update given notes. * * @param Notes $notes * @param array $params * * @return Notes */ public function update(Notes $notes, $params) { $notes->forceFill($this->formatParams($params, $notes->id))->save(); $this->processUpload($notes, $params, 'update'); return $notes; } /** * Delete notes. * * @param integer $id * @return bool|null */ public function delete(Notes $notes) { return $notes->delete(); } /** * Delete multiple notes. * * @param array $ids * @return bool|null */ public function deleteMultiple($ids) { return $this->notes->whereIn('id', $ids)->delete(); } }