class/Command/SubmitRoommateProfileCommand.php
<?php
namespace Homestead\Command;
use \Homestead\StudentFactory;
use \Homestead\CommandFactory;
use \Homestead\UserStatus;
use \Homestead\RoommateProfile;
use \Homestead\RoommateProfileFactory;
use \Homestead\NotificationView;
class SubmitRoommateProfileCommand extends Command {
private $term;
public function setTerm($term){
$this->term = $term;
}
public function getRequestVars()
{
return array('action'=>'SubmitRoommateProfile', 'term'=>$this->term);
}
public function execute(CommandContext $context)
{
$term = $context->get('term');
# Check to see if a student already has a profile on file.
# If so, pass the profile's id to the Student_Profile constructor
# so it will load the current profile, and then update it.
# Otherwise, create a new profile.
//use student object to get student by logged in username, then get banner id associated with username, then check for profile with that banner id
$student = StudentFactory::getStudentByUsername(UserStatus::getUsername(), $term);
$banner = $student->getBannerID();
$id = RoommateProfileFactory::checkForProfile($banner, $term);
if ($id !== FALSE){
$profile = new RoommateProfile($id);
} else {
$profile = new RoommateProfile();
$profile->setUsername(UserStatus::getUsername());
$profile->setBannerID($banner);
$profile->set_date_submitted();
$profile->setTerm($term);
}
# Alternate contact info
$contact_array = array("alternate_email", "fb_link", "instagram_sn", "twitter_sn", "tumblr_sn", "kik_sn", "about_me");
$contactSize = count($contact_array);
for ($x = 0; $x < $contactSize; $x++)
{
if (isset($_REQUEST[$contact_array[$x]]) && $_REQUEST[$contact_array[$x]] != '')
{
$profile->set_text($contact_array[$x], $_REQUEST[$contact_array[$x]]);
}
else
{
$profile->set_text($contact_array[$x], '');
}
}
# Hobbies check boxes
$hobbies_array = array("arts_and_crafts", "books_and_reading", "cars", "church_activities",
"collecting", "computers_and_technology", "dancing", "fashion", "fine_arts", "gardening",
"games", "humor", "investing_personal_finance", "movies", "music", "outdoor_activities",
"pets_and_animals", "photography", "politics", "sports", "travel", "tv_shows", "volunteering", "writing", "rotc");
$hobbiesSize = count($hobbies_array);
for ($x = 0; $x < $hobbiesSize; $x++)
{
if (isset($_REQUEST['hobbies_checkbox'][$hobbies_array[$x]]))
{
$profile->set_checked($hobbies_array[$x]);
}
else
{
$profile->set_checked($hobbies_array[$x],0);
}
}
# Music check boxes
$music_array = array("alternative", "ambient", "beach", "bluegrass", "blues", "christian", "classical",
"classic_rock", "country", "electronic", "folk", "heavy_metal", "hip_hop", "house", "industrial", "jazz",
"popular_music", "progressive", "punk", "r_and_b", "rap", "reggae", "rock", "world_music");
$musicSize = count($music_array);
for ($x = 0; $x < $musicSize; $x++)
{
if (isset($_REQUEST['music_checkbox'][$music_array[$x]]))
{
$profile->set_checked($music_array[$x]);
}
else
{
$profile->set_checked($music_array[$x],0);
}
}
# Study times
$study_array = array("study_early_morning", "study_morning_afternoon", "study_afternoon_evening", "study_evening", "study_late_night");
$studySize = count($study_array);
for ($x = 0; $x < $studySize; $x++)
{
if (isset($_REQUEST['study_times'][$study_array[$x]]))
{
$profile->set_checked($study_array[$x]);
}
else
{
$profile->set_checked($study_array[$x],0);
}
}
# Drop downs
$drop_down_array = array("political_views", "major", "experience",
"sleep_time", "wakeup_time", "overnight_guests", "loudness", "cleanliness", "free_time");
$politicalSize = count($drop_down_array);
for ($x = 0; $x < $politicalSize; $x++)
{
if (isset($_REQUEST[$drop_down_array[$x]]) && $_REQUEST[$drop_down_array[$x]] != '')
{
$profile->set_text($drop_down_array[$x], $_REQUEST[$drop_down_array[$x]]);
}
else
{
$profile->set_text($drop_down_array[$x], '');
}
}
# Spoken Languages
$lang_array = array("arabic" , "bengali" , "chinese" , "english" , "french" , "german" , "hindi" ,
"italian" , "japanese" , "javanese" , "korean" , "malay" , "marathi" , "portuguese" , "punjabi" ,
"russian" , "tamil" , "telugu" , "vietnamese");
$langSize = count($lang_array);
for ($x = 0; $x < $langSize; $x++)
{
if (isset($_REQUEST['language_checkbox'][$lang_array[$x]]))
{
$profile->set_checked($lang_array[$x]);
}
else
{
$profile->set_checked($lang_array[$x], 0);
}
}
$profile->save();
\NQ::simple('hms', NotificationView::SUCCESS, 'Your roommate profile was successfully created/updated.');
$successCmd = CommandFactory::getCommand('ShowStudentMenu');
$successCmd->redirect();
}
}