aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2018-05-04converters.h: support std::unordered_map<QString, T>Kitsune Ral
2018-05-04SendToDeviceJob: use a map-of-maps for messages instead of an opaque QJsonObjectKitsune Ral
2018-05-04gtad.yaml: Support OpenAPI value maps (aka additionalProperties)Kitsune Ral
This is useful for things like tags map in m.tags event, or the map-of-maps-of-messages in SendToDeviceJob (coming in the next commit). Requires GTAD 0.4.9 or later.
2018-05-04Preempt job/setroomstatejob.* with jobs/generated/room_state.*Kitsune Ral
The template part (not exposed in the auto-generated class) goes to Room::Private::requestSetState(). Also, Room::setMemberState() to interface with User class.
2018-05-04EvT::TypeId: Use a member function instead of a variableKitsune Ral
The latter one causes linkage errors when used from a template method (but not from a template class, puzzlingly).
2018-05-03gtad.yaml: Update regexes to match string partsKitsune Ral
According to KitsuneRal/gtad#31.
2018-05-03Preempt jobs/joinroomjob.* with jobs/generated/joining.*Kitsune Ral
Enables responding to third-party invites.
2018-05-03jobs/generated: Drop unused codeKitsune Ral
2018-05-03GetRoomEventsJob (replaces RoomMessagesJob) + refactoringKitsune Ral
1. Updates in this commit (see further) allow to generate and build GetRoomEventsJob from message_pagination.yaml; this job completely preempts RoomMessagesJob. 2. EventsBatch<> is no more a thing; there's EventsArray<> to replace it but it's loaded from a JSON array rather than an event batch (a JSON array inside another JSON object). SyncJob that used it extensively has been moved to "conventional" containers (Events, RoomEvents and the newly introduced StateEvents). RoomMessagesJob that also used EventsBatch<> is decommissioned (see above). 3. RoomEventsRange is now an alias for Range<RoomEvents>, defined in util.h (otherwise almost the same). 4. Connection::getMessages() is no more. Use Room::getPreviousContent() and Connection::callApi<GetRooMEventsJob>() instead. 5. Moving things around in Room, since SyncJob now supplies state events in more specific StateEvents, rather than RoomEvents.
2018-05-03Room::Private::processRedaction: minor refactoringKitsune Ral
2018-05-03CleanupKitsune Ral
2018-05-03GTAD: Use QMatrixClient::Event-derived classes in generated jobs + Mustache ↵Kitsune Ral
cleanup This should make generated jobs buildable across the whole CS API (sync.yaml is disabled as the manual implementation is still considerably better).
2018-05-01Merge branch 'master' into kitsune-gtadKitsune Ral
2018-05-01jobs/generated: use std::move in baseURL; type updates from the API filesKitsune Ral
The type updates are a matter of pending PR to matrix-doc yet.
2018-05-01gtad.yaml: Use EventPtr for Notifications.Event; add variant type to the mapKitsune Ral
Variants are not yet supported but just in case, let's have the line, it's very obvious.
2018-05-01GetNotificationsJob: don't alias EventPtr with EventKitsune Ral
It's useless and misleading.
2018-05-01jobs/generated: use std::move in baseURL; type updates from the API filesKitsune Ral
The type updates are a matter of pending PR to matrix-doc yet.
2018-05-01Event and Room: further abstract event pointersKitsune Ral
So that eventual switch from std::unique_ptr to some other pointer (as a case - QSharedPointer) would be as painless as possible.
2018-05-01Room: endorse std::moveKitsune Ral
That is, add "using std::move" and strip std:: from actual usages.
2018-05-01converters.h: Support std::vector<>Kitsune Ral
2018-05-01User::processEvent: add constKitsune Ral
2018-05-01RedactionEvent: make the constructor explicitKitsune Ral
2018-05-01Event: cleanupKitsune Ral
2018-05-01Integrate converters with EventPtr partiallyKitsune Ral
So that events can be created from JSON in the same way as all other types.
2018-05-01Mustache: more C++ tidying and empty lines removalKitsune Ral
2018-05-01ConnectionsGuard: one more fix about defaultsKitsune Ral
2018-05-01jobs/generated: GetNotificationsJobKitsune Ral
2018-04-30ConnectionsGuard: one more fix about defaultsKitsune Ral
2018-04-30jobs/generated: GetNotificationsJobKitsune Ral
2018-04-30jobs/generated: cleanup C++Kitsune Ral
2018-04-30ConnectionsGuard: suppress the copying assignment operatorKitsune Ral
It accidentally leaked through using QPointer::operator=
2018-04-30gtad.yaml: Migrate to GTAD 0.5 config formatKitsune Ral
2018-04-30jobs/generated: cleanup C++Kitsune Ral
2018-04-30Mustache templates: cleanup C++Kitsune Ral
2018-04-30ConnectionsGuard: suppress the copying assignment operatorKitsune Ral
It accidentally leaked through using QPointer::operator=
2018-04-29Merge branch 'master' into kitsune-gtadKitsune Ral
2018-04-27Use bridge names as the first line of disambiguationKitsune Ral
If can get away without showing MXIDs we should do it.
2018-04-27Cache bridge names along with user namesKitsune Ral
Otherwise the bridge is forgotten after restart. This bumps the cache version.
2018-04-27Fix broken User::displayName() logicKitsune Ral
Also, add an assert to Connection::user() to make sure it doesn't create users with invalid ids. Closes #201.
2018-04-27User::rawName(); bonus, bring order to doc commentsKitsune Ral
This new function allows to get the username along with its bridge (basically, undoing the change applied by processEvent for cases when it is undesirable).
2018-04-27User::processEvent: fix bridge postfix not being strippedKitsune Ral
Closes #197.
2018-04-25BaseJob::doCheckReply: catch non-HTTP errors tooKitsune Ral
2018-04-25BaseJob: rewrite error detection using genuine HTTP codesKitsune Ral
Qt Network error codes don't represent well some cases. Closes #200.
2018-04-25Avatar: don't allow null callbacks to be registeredKitsune Ral
2018-04-22Avatar: clear the list of callbacks after completion + general code cleanupKitsune Ral
2018-04-22Code reformattingKitsune Ral
2018-04-16ConnectionsGuard<> template to automatically disconnect subscribersKitsune Ral
Case in point is a room list model (so far in Quaternion, but planned for inclusion to the lib) that stores lists of connections and rooms; upon dropping, e.g., a room from the list the model should disconnect from the room's signals.
2018-04-14jobs/generated: Overload toJson() instead of operator QJsonObject()/QJsonValue()Kitsune Ral
It slightly reduces the header interface and shortcuts the actual call chain (not that it had any performance implications, just easier reasoning).
2018-04-14Mustache templates: Overload toJson() instead of operator ↵Kitsune Ral
QJsonObject()/QJsonValue() It slightly reduces the header interface and shortcuts the actual call chain (not that it had any performance implications, just easier reasoning).
2018-04-14Mustache: {{#producesNonJson?}} -> {{#producesNotJson?}}Kitsune Ral
According to the most recent changes in GTAD.