aboutsummaryrefslogtreecommitdiff
path: root/jobs/downloadfilejob.cpp
AgeCommit message (Collapse)Author
2018-02-03DownloadFileJob, MediaThumbnailJob: augment generated makeRequestUrl() methodsKitsune Ral
2018-01-15DownloadFileJob: Be tolerant to request retriesKitsune Ral
2018-01-14DownloadFileJobKitsune Ral
Instead of exposing a QIODevice as GetContentJob does it gets a filename and saves the incoming payload into it.
#n53'>53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
/******************************************************************************
 * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
 */

#pragma once

#include "jobs/basejob.h"

namespace Quotient {

/*! \brief Create a new mapping from room alias to room ID.
 *
 */
class SetRoomAliasJob : public BaseJob {
public:
    /*! \brief Create a new mapping from room alias to room ID.
     *
     * \param roomAlias
     *   The room alias to set.
     *
     * \param roomId
     *   The room ID to set.
     */
    explicit SetRoomAliasJob(const QString& roomAlias, const QString& roomId);
};

/*! \brief Get the room ID corresponding to this room alias.
 *
 * Requests that the server resolve a room alias to a room ID.
 *
 * The server will use the federation API to resolve the alias if the
 * domain part of the alias does not correspond to the server's own
 * domain.
 */
class GetRoomIdByAliasJob : public BaseJob {
public:
    /*! \brief Get the room ID corresponding to this room alias.
     *
     * \param roomAlias
     *   The room alias.
     */
    explicit GetRoomIdByAliasJob(const QString& roomAlias);

    /*! \brief Construct a URL without creating a full-fledged job object
     *
     * This function can be used when a URL for GetRoomIdByAliasJob
     * is necessary but the job itself isn't.
     */
    static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomAlias);

    // Result properties

    /// The room ID for this room alias.
    QString roomId() const { return loadFromJson<QString>("room_id"_ls); }

    /// A list of servers that are aware of this room alias.
    QStringList servers() const
    {
        return loadFromJson<QStringList>("servers"_ls);
    }
};

/*! \brief Remove a mapping of room alias to room ID.
 *
 * Remove a mapping of room alias to room ID.
 *
 * Servers may choose to implement additional access control checks here, for
 * instance that room aliases can only be deleted by their creator or a server
 * administrator.
 *
 * .. Note::
 *    Servers may choose to update the ``alt_aliases`` for the
 * ``m.room.canonical_alias`` state event in the room when an alias is removed.
 * Servers which choose to update the canonical alias event are recommended to,
 * in addition to their other relevant permission checks, delete the alias and
 * return a successful response even if the user does not have permission to
 * update the ``m.room.canonical_alias`` event.
 */
class DeleteRoomAliasJob : public BaseJob {
public:
    /*! \brief Remove a mapping of room alias to room ID.
     *
     * \param roomAlias
     *   The room alias to remove.
     */
    explicit DeleteRoomAliasJob(const QString& roomAlias);

    /*! \brief Construct a URL without creating a full-fledged job object
     *
     * This function can be used when a URL for DeleteRoomAliasJob
     * is necessary but the job itself isn't.
     */
    static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomAlias);
};

/*! \brief Get a list of local aliases on a given room.
 *
 * Get a list of aliases maintained by the local server for the
 * given room.
 *
 * This endpoint can be called by users who are in the room (external
 * users receive an ``M_FORBIDDEN`` error response). If the room's
 * ``m.room.history_visibility`` maps to ``world_readable``, any
 * user can call this endpoint.
 *
 * Servers may choose to implement additional access control checks here,
 * such as allowing server administrators to view aliases regardless of
 * membership.
 *
 * .. Note::
 *    Clients are recommended not to display this list of aliases prominently
 *    as they are not curated, unlike those listed in the
 * ``m.room.canonical_alias`` state event.
 */
class GetLocalAliasesJob : public BaseJob {
public:
    /*! \brief Get a list of local aliases on a given room.
     *
     * \param roomId
     *   The room ID to find local aliases of.
     */
    explicit GetLocalAliasesJob(const QString& roomId);

    /*! \brief Construct a URL without creating a full-fledged job object
     *
     * This function can be used when a URL for GetLocalAliasesJob
     * is necessary but the job itself isn't.
     */
    static QUrl makeRequestUrl(QUrl baseUrl, const QString& roomId);

    // Result properties

    /// The server's local aliases on the room. Can be empty.
    QStringList aliases() const
    {
        return loadFromJson<QStringList>("aliases"_ls);
    }
};

} // namespace Quotient