/home/mip/mip/app/Modules/Api/Controllers/QuestionnaireController.php
<?php

namespace QxCMS\Modules\Api\Controllers;

use Illuminate\Http\Request;

use QxCMS\Http\Controllers\Controller;
use QxCMS\Modules\Client\Repositories\Questionnaire\QuestionRepositoryInterface as Question;
use QxCMS\Modules\Client\Repositories\Questionnaire\TemplateRepositoryInterface as Template;
use Auth;
use \Carbon\Carbon;

class QuestionnaireController extends Controller
{
    protected $question;
	protected $template;


	public function __construct(Question $question, Template $template)
	{
		$this->question = $question;
        $this->template = $template;
	}

    public function getQuestionnaire(Request $request)
    {


        $types = $this->question->getTypes();

        $template = $this->template->apiGetQuestionnaire($request->all());
        $responses = array();
        $responses['title']  = $template->title;
        /*$responses['pages'] = array();*/
        foreach ($template->questions as $question_key => $question) {

            $type = (($question->multiple_select == true) ? 3:$question->question_type);
            $choices = array();
            if($type == 2 || $type == 3)
            {
                foreach ($question->answers as $answer_key => $answer) {
                    
                    $choices[] =  array('value' => "$answer->id", 'text' => $answer->name);
                }
            }


            $responses['pages'][$question_key] =  array(
                                            'name' => 'page'.$question->id,
                                            'questions' =>  array(array(
                                                'type' => $types[$type],
                                                'name' => 'question'.$question->id,
                                                'title' => $question->title,
                                                'choices' => $choices,
                                                'isRequired' => ($question->required == true) ? true:false
                                            ))
                                        );

        }

        return response()->json($responses)->withCallback($request->input('callback'));
    }
}