示例#1
0
 /**
  * Returns the list of incident types available.
  *
  * @param   RemoteApi $client The connection resource
  * @param   array $auth Array of authentication information (email, password)
  * @param   integer $issue_id The issue ID
  * @param   boolean $redeemed_only If this should only show items that have been redeemed.
  * @return array|string
  */
 public function promptIncidentTypes($client, $auth, $issue_id, $redeemed_only = false)
 {
     $types = $client->getIncidentTypes($auth[0], $auth[1], $issue_id, $redeemed_only);
     if (count($types) < 1) {
         if ($redeemed_only) {
             self::quit('No incident types have been redeemed for this issue');
         } else {
             self::quit('All incident types have already been redeemed for this issue');
         }
     }
     $prompt = 'Please enter a comma seperated list of incident types to ';
     if ($redeemed_only) {
         $prompt .= 'un';
     }
     $prompt .= "redeem for this issue.\n";
     foreach ($types as $id => $data) {
         $prompt .= sprintf(" [%s] => %s (Total: %s; Left: %s)\n", $id, $data['title'], $data['total'], $data['total'] - $data['redeemed']);
     }
     $requested_types = CLI_Misc::prompt($prompt, false);
     $requested_types = explode(',', $requested_types);
     if (count($requested_types) < 1) {
         self::quit('Please enter a comma seperated list of issue types');
     }
     $type_keys = array_keys($types);
     foreach ($requested_types as $type_id) {
         if (!in_array($type_id, $type_keys)) {
             self::quit("Input '{$type_id}' is not a valid incident type");
         }
     }
     return $requested_types;
 }