/**
  * Save comment in activity stream
  *
  * @param Request $request
  * @return \Illuminate\Http\JsonResponse
  */
 public function save(Request $request)
 {
     $asId = $request->get('as_id');
     $userId = Auth::user()->id;
     $comment = $request->get('comment');
     $results = $this->streamApi->saveActivityComment($asId, $userId, $comment);
     return response()->json(["status" => "success", "commentator" => Tools::getUserFirstName(Auth::user()->id), "comment" => $results->comment, "created_at" => Tools::dateConverter($results->created_at)]);
 }
 /**
  * Save activity stream
  *
  * @param $plan
  * @return bool
  */
 public function saveActivityStream($plan)
 {
     try {
         $assigneeName = Tools::getUserFirstName($plan['creator_id']);
         $userId = $plan['creator_id'];
         $type = $plan['type'];
         $status = $plan['status'];
         if ($type != 'plan') {
             $assigneeName = $plan['assignee'];
             $userId = $plan['tester_id'];
             $status = $plan['tickets_overall_status'];
         }
         $this->model->create(['plan_id' => $plan['plan_id'], 'user_id' => $userId, 'activity' => $assigneeName . ' ' . Tools::getStatusText('activity', $type, $status) . ' ' . $plan['description']]);
     } catch (\Exception $e) {
         Tools::log($e->getMessage() . ' activity stream', $plan);
         Session::flash('flash_error', config('testplanner.messages.plan.system.activity_stream_error'));
         return true;
     }
     return true;
 }
Beispiel #3
0
 /**
  * Retrieve custom accessor
  *
  * @return mixed
  */
 public function getUserFirstNameAttribute()
 {
     return Tools::getUserFirstName($this->user_id);
 }
Beispiel #4
0
 /**
  * Get tester plan's response
  *
  * @param $planId
  * @param $userId
  * @return array
  */
 public function planRenderer($planId, $userId)
 {
     // Get plan
     $plan = DB::table('plans AS p')->join('testers AS t', 'p.id', '=', 't.plan_id')->join('tickets AS ti', 'p.id', '=', 'ti.plan_id')->select('p.*', 'p.id AS plan_id', 't.user_id AS tester_id', 't.browsers', 'ti.tickets')->where('p.id', '=', $planId)->where('t.user_id', '=', $userId)->first();
     // Get responses
     $ticketsResponses = $this->trModel->where('plan_id', '=', $planId)->where('tester_id', '=', $userId)->get();
     // Get ticket definitions
     $ticketTexts = unserialize($plan->tickets);
     // If there are no responses, create a blank object
     if ($ticketsResponses->count() == 0) {
         $browsers = explode(',', $plan->browsers);
         foreach ($browsers as $browser) {
             $results[$browser] = ['ticket_resp_id' => '', 'response_status' => '', 'tickets' => $ticketTexts];
         }
         $plan->responses = $results;
     } else {
         foreach ($ticketsResponses as $row) {
             $responseTickets = [];
             foreach ($ticketTexts as $ticketText) {
                 $responses = unserialize($row->responses);
                 foreach ($responses as $response) {
                     $ticketTextId = $ticketText['id'];
                     if ($ticketTextId == $response['id']) {
                         $ticketDesc = $ticketText['desc'];
                         if (preg_match('/^ECOM-\\d/', $ticketDesc)) {
                             list($project, $summary) = explode(':', $ticketDesc);
                             $descUrl = url(config('testplanner.jira.info.domain')) . '/browse/' . $project;
                         } else {
                             $descUrl = '';
                         }
                         $responseTickets[$ticketTextId] = ['id' => $ticketTextId, 'desc' => $ticketDesc, 'description_url' => $descUrl, 'objective' => $ticketText['objective'], 'test_steps' => $ticketText['test_steps'], 'notes_response' => nl2br($response['notes_response']), 'test_status' => isset($response['test_status']) ? $response['test_status'] : null];
                     }
                 }
             }
             $results[$row->browser] = ['ticket_resp_id' => $row->id, 'response_status' => $row->status, 'tickets' => $responseTickets];
         }
         $plan->responses = $results;
     }
     $plan->reporter = Tools::getUserFirstName($plan->creator_id);
     $plan->assignee = Tools::getUserFirstName($plan->tester_id);
     $plan->browsers = $plan->browsers;
     $plan->description = $plan->description;
     return get_object_vars($plan);
 }