query( " CREATE TABLE IF NOT EXISTS activitypub_outbox ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, actor VARCHAR(128) NOT NULL, activity TEXT NOT NULL ); " ); } function create_activity( $actor, $activity ) { // TODO validate activity and actor; handle errors global $wpdb; $activity_json = wp_json_encode($activity); $wpdb->insert( 'activitypub_outbox', array( "actor" => $actor, "activity" => $activity_json, ) ); $persisted = json_decode( $wpdb->get_var( sprintf( "SELECT activity FROM activitypub_outbox WHERE id = %d", $wpdb->insert_id ) ) ); $response = new WP_REST_Response( $persisted ); $response->set_status( 201 ); // TODO set location header of response to created object URL return $response; } } ?>