public static function handlePostRequest()
 {
     $data = static::getRequestData();
     // create Content object
     $Content = new CMS_BlogPost();
     $Content->Title = $data['Title'];
     $Content->save();
     // create text ContentItem object
     $ContentItem = new CMS_RichTextContent();
     $ContentItem->ContentID = $Content->ID;
     $ContentItem->Data = $data['Data'];
     $ContentItem->save();
     // create CategoryItem object foreach
     if (is_array($data['Categories']) && count($data['Categories'])) {
         foreach ($data['Categories'] as $cat) {
             $Category = Category::getByID($cat);
             $CategoryItem = new CategoryItem();
             $CategoryItem->ContextClass = 'CMS_BlogPost';
             $CategoryItem->ContextID = $Content->ID;
             $CategoryItem->CategoryID = $Category->ID;
             $CategoryItem->save();
         }
     }
     // create TagItem object foreach. if Tag object doesn't exist, create as well
     if (is_array($data['Tags']) && count($data['Tags'])) {
         foreach ($data['Tags'] as $word) {
             $Tag = Tag::getFromHandle($word, true);
             // second boolean is telling method to make the Tag object for us if it doesn't exist
             $TagItem = new TagItem();
             $TagItem->ContextClass = 'CMS_BlogPost';
             $TagItem->ContextID = $Content->ID;
             $TagItem->TagID = $Tag->ID;
             $TagItem->save();
         }
     }
     return static::respondCRUD($Content, 'singular', 'created');
 }