static function saveField($app, $fieldId)
 {
     if (!v::intVal()->validate($fieldId) || !v::key('identifier', v::stringType())->validate($app->request->post()) || !v::key('type', v::stringType())->validate($app->request->post()) || !v::key('desc', v::stringType())->validate($app->request->post())) {
         // Validate input parameters
         return $app->render(400, array('msg' => 'Update failed. Check your parameters and try again.'));
     } else {
         if (strtolower($app->request->post('type')) != 'state' && strtolower($app->request->post('type')) != 'element') {
             return $app->render(400, array('msg' => 'Update failed. Invalid field type. Only "state" and "element" are allowed.'));
         }
     }
     // Verify a unique slug
     $identifier = self::makeSlug($app->request->post('identifier'));
     $existing = FieldData::getByIdentifier($identifier, $fieldId);
     if ($existing) {
         return $app->render(400, array('msg' => 'Could not update field. A field with that name already exists.', 'field' => $existing));
     }
     // Add Cariable
     $data = array(':id' => $fieldId, ':identifier' => $identifier, ":type" => strtolower($app->request->post('type')), ":desc" => $app->request->post('desc'), ":last_updated_by" => APIAuth::getUserId());
     $saved = FieldData::updateField($data);
     if ($saved) {
         RoleData::addAdminRoleToNewField($fieldId);
         $field = FieldData::getField($fieldId);
         return $app->render(200, array('field' => $field));
     } else {
         return $app->render(400, array('msg' => 'Could not update field.'));
     }
 }
 static function assignGroup($app)
 {
     if (!v::key('groupId', v::stringType())->validate($app->request->post()) || !v::key('roleId', v::stringType())->validate($app->request->post())) {
         return $app->render(400, array('msg' => 'Could not assign role from group. Check your parameters and try again.'));
     }
     $data = array(':auth_group_id' => $app->request->post('groupId'), ':auth_role_id' => $app->request->post('roleId'), ":created_user_id" => APIAuth::getUserId());
     if (RoleData::insertGroupAssignment($data)) {
         return $app->render(200, array('msg' => 'Role has been assigned to group.'));
     } else {
         return $app->render(400, array('msg' => 'Could not assign role to group.'));
     }
 }