QtRedmine
Public Types | Signals | Public Member Functions | Protected Member Functions | List of all members
qtredmine::RedmineClient Class Reference

Redmine connection class. More...

#include <RedmineClient.h>

Inheritance diagram for qtredmine::RedmineClient:
qtredmine::SimpleRedmineClient

Public Types

using JsonCb = std::function< void(QNetworkReply *, QJsonDocument *)>
 Typedef for a JSON callback function.
 

Signals

void initialised ()
 Signal that the connection has been initialised.
 
void networkAccessibleChanged (QNetworkAccessManager::NetworkAccessibility accessible)
 Signal that the network accessibility has changed. More...
 
void requestFinished (JsonCb callback, QNetworkReply *reply, QJsonDocument *json)
 Signal that the request has finished. More...
 

Public Member Functions

 RedmineClient (QObject *parent=nullptr)
 Constructor for an unconfigured Redmine connection. More...
 
 RedmineClient (QString url, QObject *parent=nullptr)
 Constructor for an unconfigured Redmine connection. More...
 
 RedmineClient (QString url, QString apiKey, bool checkSsl=true, QObject *parent=nullptr)
 Constructor for a Redmine connection using API key authentication. More...
 
 RedmineClient (QString url, QString login, QString password, bool checkSsl=true, QObject *parent=nullptr)
 Constructor for a Redmine connection using basic authentication. More...
 
void reconnect ()
 (Re-)Connect to Redmine
 
Getters
QString getUrl () const
 Get the Redmine base URL. More...
 
Setters
void setUrl (QString url)
 Set the Redmine base URL. More...
 
void setAuthenticator (QString apiKey)
 Set the Redmine authentification parameters. More...
 
void setAuthenticator (QString login, QString password)
 Set the Redmine authentification parameters. More...
 
void setUserAgent (QByteArray userAgent)
 Set the user agent for the Redmine connection. More...
 
void setCheckSsl (bool checkSsl)
 Set the SSL check data (e.g. certificate validity) More...
 
Redmine data creators
void sendCustomField (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update custom field in Redmine. More...
 
void sendIssue (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update issue in Redmine. More...
 
void sendIssueCategory (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update issue category in Redmine. More...
 
void sendIssuePriority (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update issue priority in Redmine. More...
 
void sendIssueStatus (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update issue status in Redmine. More...
 
void sendProject (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update project in Redmine. More...
 
void sendTimeEntry (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update time entry in Redmine. More...
 
void sendTimeEntryActivity (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update time entry activity in Redmine. More...
 
void sendTracker (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update tracker in Redmine. More...
 
void sendUser (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update user in Redmine. More...
 
void sendVersion (const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update version in Redmine. More...
 
Redmine data retrievers
void retrieveCustomFields (JsonCb callback, QString parameters="")
 Retrieve custom fields from Redmine. More...
 
void retrieveIssue (JsonCb callback, int issueId, QString parameters="")
 Retrieve an issue from Redmine. More...
 
void retrieveIssueCategories (JsonCb callback, QString parameters="")
 Retrieve issue categories from Redmine. More...
 
void retrieveIssuePriorities (JsonCb callback, QString parameters="")
 Retrieve issue priorities from Redmine. More...
 
void retrieveIssues (JsonCb callback, QString parameters="")
 Retrieve issues from Redmine. More...
 
void retrieveIssueStatuses (JsonCb callback, QString parameters="")
 Retrieve issue statuses from Redmine. More...
 
void retrieveProjects (JsonCb callback, QString parameters="")
 Retrieve projects from Redmine. More...
 
void retrieveTimeEntries (JsonCb callback, QString parameters="")
 Retrieve time entries from Redmine. More...
 
void retrieveTimeEntryActivities (JsonCb callback, QString parameters="")
 Retrieve time entry activities from Redmine. More...
 
void retrieveTrackers (JsonCb callback, QString parameters="")
 Retrieve trackers from Redmine. More...
 
void retrieveCurrentUser (JsonCb callback, QString parameters="")
 Retrieve current user from Redmine. More...
 
void retrieveUsers (JsonCb callback, QString parameters="")
 Retrieve users from Redmine. More...
 
void retrieveVersions (JsonCb callback, QString parameters="")
 Retrieve versions from Redmine. More...
 

Protected Member Functions

void retrieveEnumerations (QString enumeration, JsonCb callback, QString parameters="")
 Retrieve enumerations from Redmine. More...
 
void sendEnumeration (QString enumeration, const QJsonDocument &data, JsonCb callback=nullptr, int id=-1, QString parameters="")
 Create or update enumeration in Redmine. More...
 
QNetworkReply * sendRequest (QString resource, JsonCb callback=nullptr, QNetworkAccessManager::Operation mode=QNetworkAccessManager::GetOperation, const QString &queryParams="", const QByteArray &postData="")
 Send a request to Redmine. More...
 

Detailed Description

Redmine connection class.

This class handles the connections to a Redmine instance and provides access to the Redmine REST API.

See also
http://www.redmine.org/projects/redmine/wiki/Rest_api

Constructor & Destructor Documentation

qtredmine::RedmineClient::RedmineClient ( QObject *  parent = nullptr)

Constructor for an unconfigured Redmine connection.

Parameters
parentParent QObject (default: nullptr)
qtredmine::RedmineClient::RedmineClient ( QString  url,
QObject *  parent = nullptr 
)

Constructor for an unconfigured Redmine connection.

Parameters
urlRedmine base URL
parentParent QObject (default: nullptr)
qtredmine::RedmineClient::RedmineClient ( QString  url,
QString  apiKey,
bool  checkSsl = true,
QObject *  parent = nullptr 
)

Constructor for a Redmine connection using API key authentication.

Parameters
urlRedmine base URL
apiKeyRedmine API key
checkSslCheck the SSL certificate (default: true)
parentParent QObject (default: nullptr)
qtredmine::RedmineClient::RedmineClient ( QString  url,
QString  login,
QString  password,
bool  checkSsl = true,
QObject *  parent = nullptr 
)

Constructor for a Redmine connection using basic authentication.

Parameters
urlRedmine base URL
loginRedmine login
passwordRedmine password
checkSslCheck the SSL certificate (default: true)
parentParent QObject (default: nullptr)

Member Function Documentation

QString qtredmine::RedmineClient::getUrl ( ) const

Get the Redmine base URL.

Returns
Redmine base URL
void qtredmine::RedmineClient::networkAccessibleChanged ( QNetworkAccessManager::NetworkAccessibility  accessible)
signal

Signal that the network accessibility has changed.

Parameters
accessibleNetwork accessibility
void qtredmine::RedmineClient::requestFinished ( JsonCb  callback,
QNetworkReply *  reply,
QJsonDocument *  json 
)
signal

Signal that the request has finished.

Parameters
callbackCallback function that will be called
replyReply that will be passed to the callback function
jsonJSON data that will be passed to the callback function
void qtredmine::RedmineClient::retrieveCurrentUser ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve current user from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional user parameters
void qtredmine::RedmineClient::retrieveCustomFields ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve custom fields from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional custom field parameters
void qtredmine::RedmineClient::retrieveEnumerations ( QString  enumeration,
JsonCb  callback,
QString  parameters = "" 
)
protected

Retrieve enumerations from Redmine.

Parameters
enumerationThe enumeration to load
callbackCallback function with a QJsonDocument object
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::retrieveIssue ( JsonCb  callback,
int  issueId,
QString  parameters = "" 
)

Retrieve an issue from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
issueIdIssue ID
parametersAdditional issue parameters
void qtredmine::RedmineClient::retrieveIssueCategories ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve issue categories from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional issue category parameters
void qtredmine::RedmineClient::retrieveIssuePriorities ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve issue priorities from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::retrieveIssues ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve issues from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional issue parameters
void qtredmine::RedmineClient::retrieveIssueStatuses ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve issue statuses from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional issue status parameters
void qtredmine::RedmineClient::retrieveProjects ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve projects from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional project parameters
void qtredmine::RedmineClient::retrieveTimeEntries ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve time entries from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional time entry parameters
void qtredmine::RedmineClient::retrieveTimeEntryActivities ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve time entry activities from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::retrieveTrackers ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve trackers from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional tracker parameters
void qtredmine::RedmineClient::retrieveUsers ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve users from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional user parameters
void qtredmine::RedmineClient::retrieveVersions ( JsonCb  callback,
QString  parameters = "" 
)

Retrieve versions from Redmine.

Parameters
callbackCallback function with a QJsonDocument object
parametersAdditional version parameters
void qtredmine::RedmineClient::sendCustomField ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update custom field in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idCustom field ID to update; if set to NULL_ID, create a new custom field
parametersAdditional custom field parameters
void qtredmine::RedmineClient::sendEnumeration ( QString  enumeration,
const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)
protected

Create or update enumeration in Redmine.

Parameters
enumerationThe enumeration to create
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idEnumeration to update; if set to NULL_ID, create a enumeration
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::sendIssue ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update issue in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idIssue ID to update; if set to NULL_ID, create a new issue
parametersAdditional issue parameters
void qtredmine::RedmineClient::sendIssueCategory ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update issue category in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idIssue category ID to update; if set to NULL_ID, create a new issue category
parametersAdditional issue category parameters
void qtredmine::RedmineClient::sendIssuePriority ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update issue priority in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idIssue priority ID to update; if set to NULL_ID, create a new issue priority
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::sendIssueStatus ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update issue status in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idIssue status ID to update; if set to NULL_ID, create a new issue status
parametersAdditional issue status parameters
void qtredmine::RedmineClient::sendProject ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update project in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idProject ID to update; if set to NULL_ID, create a new project
parametersAdditional project parameters
QNetworkReply* qtredmine::RedmineClient::sendRequest ( QString  resource,
JsonCb  callback = nullptr,
QNetworkAccessManager::Operation  mode = QNetworkAccessManager::GetOperation,
const QString &  queryParams = "",
const QByteArray &  postData = "" 
)
protected

Send a request to Redmine.

Parameters
resource

The resource specific part of the Redmine REST URL, e.g. issues or projects

For example, if the Redmine base URL is set to https://redmine.site and resource is set to issues, the resulting Redmine REST URL will be https://redmine.site/issues.json.

See also
http://www.redmine.org/projects/redmine/wiki/Rest_api
Parameters
callback

Callback function for the result of the request

The callback function is required for GET operations and optional for other operations

Parameters
modeHTTP operation mode
See also
Mode
Parameters
queryParams

Query parameters that are appended to the Redmine REST URL

For example, if the Redmine base URL is set to https://redmine.site, resource is set to issues and queryParams is set to project_id=2&tracker_id=1, the resulting Redmine REST URL will be https://redmine.site/issues.json?project_id=2&tracker_id=1.

Parameters
postDataData that will be sent by POST and PUT operations
Returns
The network reply for this request
void qtredmine::RedmineClient::sendTimeEntry ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update time entry in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idTime entry ID to update; if set to NULL_ID, create a new time entry
parametersAdditional time entry parameters
void qtredmine::RedmineClient::sendTimeEntryActivity ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update time entry activity in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idTime entry activity ID to update; if set to NULL_ID, create a new time entry activity
parametersAdditional enumeration parameters
void qtredmine::RedmineClient::sendTracker ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update tracker in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idTracker ID to update; if set to NULL_ID, create a new tracker
parametersAdditional tracker parameters
void qtredmine::RedmineClient::sendUser ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update user in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idUser ID to update; if set to NULL_ID, create a new user
parametersAdditional user parameters
void qtredmine::RedmineClient::sendVersion ( const QJsonDocument &  data,
JsonCb  callback = nullptr,
int  id = -1,
QString  parameters = "" 
)

Create or update version in Redmine.

Parameters
dataData to store in Redmine
callbackCallback function with a QJsonDocument object
idVersion ID to update; if set to NULL_ID, create a new version
parametersAdditional version parameters
void qtredmine::RedmineClient::setAuthenticator ( QString  apiKey)

Set the Redmine authentification parameters.

Parameters
apiKeyRedmine API key
void qtredmine::RedmineClient::setAuthenticator ( QString  login,
QString  password 
)

Set the Redmine authentification parameters.

Parameters
loginRedmine login name
passwordRedmine login password
void qtredmine::RedmineClient::setCheckSsl ( bool  checkSsl)

Set the SSL check data (e.g. certificate validity)

Parameters
checkSslCheck SSL data
void qtredmine::RedmineClient::setUrl ( QString  url)

Set the Redmine base URL.

Parameters
urlRedmine base URL
void qtredmine::RedmineClient::setUserAgent ( QByteArray  userAgent)

Set the user agent for the Redmine connection.

Parameters
userAgentUser agent

The documentation for this class was generated from the following file: