From 5ed7d9b53a65aec1f4793f62ac15195c44224b39 Mon Sep 17 00:00:00 2001 From: ConfuSomu Date: Tue, 18 Jul 2023 00:00:20 +0200 Subject: Implement Question object type support This commit adds support for dealing with ActivityPub Questions, which are polls. They are like Notes (posts) but contain a few more keys that record information about the poll options, number of votes and poll closure date. --- src/activitypub/fields.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/activitypub/fields.h (limited to 'src/activitypub/fields.h') diff --git a/src/activitypub/fields.h b/src/activitypub/fields.h new file mode 100644 index 0000000..25ed246 --- /dev/null +++ b/src/activitypub/fields.h @@ -0,0 +1,38 @@ +#pragma once + +#include "src/types.h" +#include +#include + +enum struct APObjectType {NOTE, QUESTION, UNKNOWN}; + +// All these fields (including APAttachmentFields, etc. in other files) are made to map to the fields present in the ActivityStream JSON's "object" for very easy construction. +// There are additional fields that we don't use so they are not included in the objects (including parent and APActivity). + +struct APQuestionFields { + QString end_time; + QString closed_time; + int total_votes; + struct Option { + QString name; + int votes; + }; + std::vector