/**
 * Saves or Updates a BuddyDrive item
 *
 * @param  array $args the different argument of the item to save
 * @uses bp_loggedin_user_id() to default to current user id
 * @uses wp_parse_args() to merge defaults and args array
 * @uses BuddyDrive_Item::save() to save data in DB
 * @return int the item id
 */
function buddydrive_save_item($args = '')
{
    $defaults = array('id' => false, 'type' => '', 'user_id' => bp_loggedin_user_id(), 'parent_folder_id' => 0, 'title' => false, 'content' => false, 'mime_type' => false, 'guid' => false, 'metas' => false);
    $params = wp_parse_args($args, $defaults);
    // Setup item to be added
    $buddydrive_item = new BuddyDrive_Item();
    $buddydrive_item->id = (int) $params['id'];
    $buddydrive_item->type = $params['type'];
    $buddydrive_item->user_id = (int) $params['user_id'];
    $buddydrive_item->parent_folder_id = (int) $params['parent_folder_id'];
    $buddydrive_item->title = $params['title'];
    $buddydrive_item->content = $params['content'];
    $buddydrive_item->mime_type = $params['mime_type'];
    $buddydrive_item->guid = $params['guid'];
    $buddydrive_item->metas = $params['metas'];
    if (!$buddydrive_item->save()) {
        return false;
    }
    do_action('buddydrive_save_item', $buddydrive_item->id, $params);
    return $buddydrive_item->id;
}