pterotype/inc/activities.php

54 lines
1.4 KiB
PHP
Raw Normal View History

2018-08-29 20:38:10 +00:00
<?php
namespace activities;
function get_activity( $id ) {
global $wpdb;
$activity_json = $wpdb->get_var( $wpdb->prepare(
2018-08-29 20:38:10 +00:00
'SELECT activity FROM activitypub_activities WHERE id = %d', $id
) );
if ( is_null( $activity_json ) ) {
return new \WP_Error(
'not_found', __( 'Activity not found', 'activitypub' ), array( 'status' => 404 )
);
}
2018-08-29 21:04:24 +00:00
$activity = json_decode( $activity_json, true );
2018-08-29 20:38:10 +00:00
$activity['id'] = get_activity_url( $id );
return $activity;
}
2018-09-14 01:52:13 +00:00
function strip_private_fields( $activity ) {
if ( array_key_exists( 'bto', $activity ) ) {
unset( $activity['bto'] );
}
if ( array_key_exists( 'bcc', $activity ) ) {
unset( $activity['bcc'] );
}
return $activity;
}
2018-08-29 20:38:10 +00:00
function persist_activity( $activity ) {
global $wpdb;
$wpdb->insert(
'activitypub_activities', array( 'activity' => wp_json_encode( $activity ) )
);
$activity["id"] = get_activity_url( $wpdb->insert_id );
return $activity;
}
function get_activity_url( $id ) {
return get_rest_url( null, sprintf( '/activitypub/v1/activity/%d', $id ) );
}
function create_activities_table() {
global $wpdb;
$wpdb->query(
"
CREATE TABLE IF NOT EXISTS activitypub_activities (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
activity TEXT NOT NULL
);
"
);
}
?>