|
|
|
@ -73,14 +73,15 @@ struct ap_activity* ap_activity_dup( struct ap_activity* act )
|
|
|
|
|
}
|
|
|
|
|
new_act->object.tag = act->object.tag;
|
|
|
|
|
|
|
|
|
|
new_act->signature.type = act->signature.type;
|
|
|
|
|
if( act->signature.creator ) {
|
|
|
|
|
if( act->state ) {
|
|
|
|
|
new_act->state = strdup( act->state );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( act->has_signature ) {
|
|
|
|
|
new_act->has_signature = true;
|
|
|
|
|
new_act->signature.type = act->signature.type;
|
|
|
|
|
new_act->signature.creator = strdup(act->signature.creator);
|
|
|
|
|
};
|
|
|
|
|
if( act->signature.created ) {
|
|
|
|
|
new_act->signature.created = strdup(act->signature.created);
|
|
|
|
|
}
|
|
|
|
|
if( act->signature.value ) {
|
|
|
|
|
new_act->signature.value = strdup(act->signature.value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -125,6 +126,7 @@ void ap_activity_free_composite( struct ap_activity* act )
|
|
|
|
|
act->object.ptr = 0;
|
|
|
|
|
break;
|
|
|
|
|
};
|
|
|
|
|
free( act->state );
|
|
|
|
|
|
|
|
|
|
free( act->signature.creator );
|
|
|
|
|
free( act->signature.created );
|
|
|
|
@ -149,20 +151,26 @@ struct json_object_field activity_ref_types[] = {
|
|
|
|
|
{ (char*)apaot_activity, offsetof( struct ap_activity, object.ptr ), false, &json_field_object_pointer, ap_activity_layout },
|
|
|
|
|
{ NULL },
|
|
|
|
|
};
|
|
|
|
|
struct json_object_field signature_types[] = {
|
|
|
|
|
{ (char*)1, offsetof( struct ap_activity, signature ), false, &json_field_object_composite, ap_signature_layout },
|
|
|
|
|
{ NULL },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct json_object_field ap_activity_layout[] = {
|
|
|
|
|
{ "id", offsetof( struct ap_activity, id ), true, &json_field_string },
|
|
|
|
|
{ "type", offsetof( struct ap_activity, type ), true, &json_field_enum, ap_activity_type_enum },
|
|
|
|
|
{ "actor", offsetof( struct ap_activity, actor ), true, &json_field_string },
|
|
|
|
|
{ "state", offsetof( struct ap_activity, state ), false, &json_field_string },
|
|
|
|
|
|
|
|
|
|
{ "to", offsetof( struct ap_activity, to ), true, &json_field_array_of, &json_field_string },
|
|
|
|
|
{ "cc", offsetof( struct ap_activity, cc ), false, &json_field_array_of, &json_field_string },
|
|
|
|
|
{ "bcc", offsetof( struct ap_activity, bcc ), false, &json_field_array_of, &json_field_string },
|
|
|
|
|
|
|
|
|
|
{ "object", offsetof( struct ap_activity, object.tag ), false, &json_field_tagged_union, &activity_ref_types },
|
|
|
|
|
{ "object", offsetof( struct ap_activity, object.tag ), false, &json_field_tagged_union, &activity_ref_types },
|
|
|
|
|
|
|
|
|
|
{ "signature", offsetof( struct ap_activity, has_signature ), false, &json_field_tagged_union, &signature_types },
|
|
|
|
|
|
|
|
|
|
{ "type", offsetof( struct ap_activity, type ), true, &json_field_enum, ap_activity_type_enum },
|
|
|
|
|
|
|
|
|
|
//{ "object", offsetof( struct ap_activity, object.ref ), false, &json_field_string },
|
|
|
|
|
//{ "object", offsetof( struct ap_activity, object.ptr ), false, &json_field_object_pointer, ap_activity_layout },
|
|
|
|
|
{ "signature", offsetof( struct ap_activity, signature ), false, &json_field_object_composite, ap_signature_layout },
|
|
|
|
|
{ NULL, 0, true, NULL, &ap_activity_type },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -195,6 +203,7 @@ struct ap_activity* ap_activity_create_accept( struct ap_activity* act )
|
|
|
|
|
array_append( &accept->to, sizeof(char*), &new_act_actor );
|
|
|
|
|
accept->object.tag = apaot_activity;
|
|
|
|
|
accept->object.ptr = ap_activity_dup(act);
|
|
|
|
|
accept->has_signature = 1;
|
|
|
|
|
accept->signature.type = apst_rsa_signature_2017;
|
|
|
|
|
accept->signature.creator = strdup(actor);
|
|
|
|
|
accept->signature.created = strdup("TBD");
|
|
|
|
|