QGIS/python/server/server.sip.in
2024-12-17 07:49:42 +10:00

74 lines
1.9 KiB
Plaintext

%Module(name=qgis._server,
keyword_arguments="All")
${DEFAULTDOCSTRINGSIGNATURE}
%Import QtCore/QtCoremod.sip
%Import QtGui/QtGuimod.sip
%Import QtXml/QtXmlmod.sip
%Import core/core.sip
%Include qgsserverexception.sip
%Feature HAVE_SERVER_PYTHON_PLUGINS
%Include server_auto.sip
%VirtualErrorHandler serverapi_badrequest_exception_handler
PyObject *type, *exception, *traceback;
PyErr_Fetch(&type, &exception, &traceback);
// check whether the object is already a unicode string
QString originalExceptionMessage;
if ( PyUnicode_Check( exception) )
{
originalExceptionMessage = QString::fromUtf8( PyUnicode_AsUTF8( exception ) );
}
else
{
PyObject* str = PyObject_Str( exception );
originalExceptionMessage = QString::fromUtf8( PyUnicode_AsUTF8( str ) );
Py_XDECREF( str );
}
SIP_RELEASE_GIL( sipGILState );
QString strException = "API bad request error";
if ( !originalExceptionMessage.isEmpty() )
{
strException = originalExceptionMessage;
}
throw QgsServerApiBadRequestException( strException );
%End
%VirtualErrorHandler server_exception_handler
PyObject *type, *exception, *traceback;
PyErr_Fetch(&type, &exception, &traceback);
// check whether the object is already a unicode string
QString originalExceptionMessage;
if ( PyUnicode_Check( exception) )
{
originalExceptionMessage = QString::fromUtf8( PyUnicode_AsUTF8( exception ) );
}
else
{
PyObject* str = PyObject_Str( exception );
originalExceptionMessage = QString::fromUtf8( PyUnicode_AsUTF8( str ) );
Py_XDECREF( str );
}
SIP_RELEASE_GIL( sipGILState );
QString strException = "Server internal error";
if ( !originalExceptionMessage.isEmpty() )
{
strException = originalExceptionMessage;
}
throw QgsServerException( strException );
%End