/**
  * 
  * @return \models\API2ApplicationRequestTokenModel
  */
 public function create(API2ApplicationModel $app, API2ApplicationRequestTokenModel $requestToken)
 {
     global $DB;
     $requestToken->setRequestToken(createKey(1, 255));
     // TODO make sure token is unique!!!!!
     $stat = $DB->prepare("INSERT INTO api2_application_request_token (api2_application_id, request_token, created_at, user_id, " . "callback_url, is_callback_display, is_callback_javascript, is_editor, state_from_user) " . "VALUES (:api2_application_id, :request_token, :created_at,  :user_id, :callback_url, " . ":is_callback_display, :is_callback_javascript, :is_editor, :state_from_user)");
     $stat->execute(array('api2_application_id' => $app->getId(), 'request_token' => $requestToken->getRequestToken(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'user_id' => null, 'callback_url' => $app->getIsCallbackUrl() ? $requestToken->getCallbackUrl() : null, 'is_callback_display' => $app->getIsCallbackDisplay() && $requestToken->getIsCallbackDisplay() ? 1 : 0, 'is_callback_javascript' => $app->getIsCallbackJavascript() && $requestToken->getIsCallbackJavascript() ? 1 : 0, 'is_editor' => $requestToken->getIsEditor() && $app->getIsEditor() ? 1 : 0, 'state_from_user' => $requestToken->getStateFromUser()));
     return $requestToken;
 }
 /**
  * 
  * @return \models\API2ApplicationModel
  */
 public function edit(API2ApplicationModel $app, UserAccountModel $user = null)
 {
     global $DB;
     $stat = $DB->prepare("UPDATE api2_application_information SET " . "user_id = :user_id,title = :title,description = :description,is_editor = :is_editor," . "is_callback_url = :is_callback_url," . "is_callback_display = :is_callback_display,is_callback_javascript = :is_callback_javascript," . "allowed_callback_urls = :allowed_callback_urls,is_auto_approve = :is_auto_approve,is_all_sites = :is_all_sites," . "is_closed_by_sys_admin = :is_closed_by_sys_admin,closed_by_sys_admin_reason = :closed_by_sys_admin_reason" . " WHERE id=:id");
     $stat->execute(array('user_id' => $app->getUserId(), 'title' => $app->getTitle(), 'description' => $app->getDescription(), 'is_editor' => $app->getIsEditor() ? 1 : 0, 'is_callback_url' => $app->getIsCallbackUrl() ? 1 : 0, 'is_callback_display' => $app->getIsCallbackDisplay() ? 1 : 0, 'is_callback_javascript' => $app->getIsCallbackJavascript() ? 1 : 0, 'allowed_callback_urls' => $app->getAllowedCallbackUrls(), 'is_auto_approve' => $app->getIsAutoApprove() ? 1 : 0, 'is_all_sites' => $app->getIsAllSites() ? 1 : 0, 'is_closed_by_sys_admin' => $app->getIsClosedBySysAdmin() ? 1 : 0, 'closed_by_sys_admin_reason' => $app->getClosedBySysAdminReason(), 'id' => $app->getId()));
 }
 public function setFromApp(API2ApplicationModel $app)
 {
     $this->is_editor = $app->getIsEditor() ? 1 : 0;
 }