Add status visibility to model and API responses

master
teknomunk 10 months ago
parent 1251c38c41
commit 8b3cd8136f

@ -30,6 +30,8 @@
#include <stddef.h>
#include <sys/stat.h>
extern struct json_enum visibility_enum[];
#define OBJ_TYPE struct status
static struct json_object_field status_layout[] = {
JSON_FIELD_INTEGER( account_id, true ),
@ -44,6 +46,7 @@ static struct json_object_field status_layout[] = {
JSON_FIELD_STRING( spoiler_text, false ),
JSON_FIELD_BOOL( pinned, false ),
JSON_FIELD_BOOL( bookmarked, false ),
JSON_FIELD_ENUM( visibility, visibility_enum, false ),
JSON_FIELD_DATETIME( published, false ),
JSON_FIELD_INTEGER( in_reply_to, false ),
@ -247,7 +250,7 @@ void status_add_tag( struct status* s, const char* tag )
if( !tag ) { return; }
for( int i = 0; i < s->tags.count; ++i ) {
if( 0 == strcmp( s->tags.items[i], tag ) ) {
if( 0 == strcasecmp( s->tags.items[i], tag ) ) {
// Tag already present, don't add a second time
return;
}

@ -8,6 +8,14 @@ struct account;
struct emoji;
struct media;
enum
{
status_visibility_public = 0,
status_visibility_unlisted = 1,
status_visibility_private = 2,
status_visibility_direct = 3,
};
struct status
{
unsigned int id;
@ -25,6 +33,7 @@ struct status
bool pinned;
bool bookmarked;
time_t published;
int visibility;
int in_reply_to;
int quote_id;

@ -19,6 +19,14 @@
extern struct json_object_field api_Status_layout[];
extern struct json_field_type api_Emoji_type;
struct json_enum visibility_enum[] = {
{ "public", status_visibility_public },
{ "unlisted", status_visibility_unlisted },
{ "private", status_visibility_private },
{ "direct", status_visibility_direct },
{ NULL, 0 },
};
bool int_to_string_callback( void* field_data, bool is_read, char** res );
bool post_reposted( void* field_data, bool is_read, bool* val )
{
@ -548,7 +556,8 @@ struct json_object_field api_Status_layout[] = {
.type = &json_field_string,
},
JSON_FIELD_STRING( url, true ),
JSON_FIELD_FIXED_STRING( visibility, "public", true ),
JSON_FIELD_ENUM( visibility, visibility_enum, true ),
//JSON_FIELD_FIXED_STRING( visibility, "public", true ),
JSON_FIELD_END,
};
#undef OBJ_TYPE

Loading…
Cancel
Save