kde-playground/kdepim-runtime/resources/openxchange/oxa/davutils.cpp
2015-04-14 22:08:21 +00:00

72 lines
2.7 KiB
C++

/*
This file is part of oxaccess.
Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#include "davutils.h"
using namespace OXA;
QDomElement DAVUtils::addDavElement( QDomDocument &document, QDomNode &parentNode, const QString &tag )
{
const QDomElement element = document.createElementNS( QLatin1String( "DAV:" ), QLatin1String( "D:" ) + tag );
parentNode.appendChild( element );
return element;
}
QDomElement DAVUtils::addOxElement( QDomDocument &document, QDomNode &parentNode, const QString &tag, const QString &text )
{
QDomElement element = document.createElementNS( QLatin1String( "http://www.open-xchange.org" ), QLatin1String( "ox:" ) + tag );
if ( !text.isEmpty() ) {
const QDomText textNode = document.createTextNode( text );
element.appendChild( textNode );
}
parentNode.appendChild( element );
return element;
}
void DAVUtils::setOxAttribute( QDomElement &element, const QString &name, const QString &value )
{
element.setAttributeNS( QLatin1String( "http://www.open-xchange.org" ), QLatin1String( "ox:" ) + name, value );
}
bool DAVUtils::davErrorOccurred( const QDomDocument &document, QString &errorText, QString &errorStatus )
{
const QDomElement documentElement = document.documentElement();
const QDomNodeList propStats = documentElement.elementsByTagNameNS( QLatin1String( "DAV:" ),
QLatin1String( "propstat" ) );
for ( int i = 0; i < propStats.count(); ++i ) {
const QDomElement propStat = propStats.at( i ).toElement();
const QDomElement status = propStat.firstChildElement( QLatin1String( "status" ) );
const QDomElement description = propStat.firstChildElement( QLatin1String( "responsedescription" ) );
if ( status.text() != QLatin1String( "200" ) ) {
errorText = description.text();
errorStatus = status.text();
return true;
}
}
return false;
}