Making WordPress.org

Changeset 12607


Ignore:
Timestamp:
06/01/2023 02:21:32 AM (3 years ago)
Author:
dd32
Message:

API: Helpscout: Cleanup the code and allow the functions to be used within a CLI script.

Location:
sites/trunk/api.wordpress.org/public_html/dotorg/helpscout
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/common.php

    r12494 r12607  
    11<?php
     2namespace WordPressdotorg\API\HelpScout;
    23use WordPressdotorg\MU_Plugins\Utilities\HelpScout;
    34
    4 if ( ! isset( $wp_init_host ) ) {
    5     $wp_init_host = 'https://api.wordpress.org/';
    6 }
    7 $base_dir = dirname( dirname( __DIR__ ) );
    8 require( $base_dir . '/wp-init.php' );
     5/**
     6 * Load WordPress.
     7 */
     8function load_wordpress( $wp_init_host = '' ) {
     9    if ( ! $wp_init_host ) {
     10        $wp_init_host = 'https://api.wordpress.org/';
     11    }
     12
     13    $base_dir = dirname( dirname( __DIR__ ) );
     14    require( $base_dir . '/wp-init.php' );
     15}
     16// Always load WordPress, if WordPress is not loaded.
     17if ( ! defined( 'ABSPATH' ) ) {
     18    load_wordpress( $wp_init_host ?? '' );
     19}
     20
     21/**
     22 * Retrieve the incoming payload, and verify it's from HelpScout.
     23 */
     24function get_request() {
     25    // HelpScout sends json data in the POST, so grab it from the input directly.
     26    $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' );
     27
     28    // Check the signature matches.
     29    if ( ! is_from_helpscout( $HTTP_RAW_POST_DATA, $_SERVER['HTTP_X_HELPSCOUT_SIGNATURE'] ?? '' ) ) {
     30        exit;
     31    }
     32
     33    // get the info from HS.
     34    return json_decode( $HTTP_RAW_POST_DATA );
     35}
    936
    1037// function to verify signature from HelpScout
     
    365392    return $user;
    366393}
    367 
    368 // HelpScout sends json data in the POST, so grab it from the input directly.
    369 $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' );
    370 
    371 // Check the signature matches.
    372 if ( ! is_from_helpscout( $HTTP_RAW_POST_DATA, $_SERVER['HTTP_X_HELPSCOUT_SIGNATURE'] ?? '' ) ) {
    373     exit;
    374 }
    375 
    376 // get the info from HS.
    377 return json_decode( $HTTP_RAW_POST_DATA );
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/dpo.php

    r11834 r12607  
    11<?php
     2namespace WordPressdotorg\API\HelpScout;
     3
    24// Add current DPO Export/Erasure status for the customer.
     5$wp_init_host = 'https://wordpress.org/'; // DPO site.
     6include __DIR__ . '/common.php';
    37
    48// $request is the validated HelpScout request.
    5 $wp_init_host = 'https://wordpress.org/'; // DPO site.
    6 $request      = include __DIR__ . '/common.php';
     9$request = get_request();
    710
    811if ( empty( $request->customer->email ) ) {
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/forums.php

    r11823 r12607  
    11<?php
     2namespace WordPressdotorg\API\HelpScout;
     3
    24// Simple User Notes sidebar panel.
     5include __DIR__ . '/common.php';
    36
    47// $request is the validated HelpScout request.
    5 $request = include __DIR__ . '/common.php';
     8$request = get_request();
    69
    710// default empty output
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/plugins-themes.php

    r12595 r12607  
    2222*/
    2323
     24include __DIR__ . '/common.php';
     25
    2426// $request is the validated HelpScout request.
    25 $request = include __DIR__ . '/common.php';
     27$request = get_request();
    2628
    2729// default empty output
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/profile.php

    r12308 r12607  
    11<?php
     2namespace WordPressdotorg\API\HelpScout;
     3
    24// Simple profile lookup for HelpScout sidebar. Returns w.org links to HS for emails received.
    35
     6include __DIR__ . '/common.php';
     7
    48// $request is the validated HelpScout request.
    5 $request = include __DIR__ . '/common.php';
     9$request = get_request();
    610
    711// default empty output
  • sites/trunk/api.wordpress.org/public_html/dotorg/helpscout/webhook.php

    r12481 r12607  
    55// Events: Conversation Created (convo.created), convo.assigned, convo.customer.reply.created, convo.merged, convo.agent.reply.created, convo.deleted, convo.status, convo.moved
    66
     7include __DIR__ . '/common.php';
     8
    79// $request is the validated HelpScout request.
    8 $request = include __DIR__ . '/common.php';
     10$request = get_request();
    911$event   = $_SERVER['HTTP_X_HELPSCOUT_EVENT'] ?? '';
    1012
Note: See TracChangeset for help on using the changeset viewer.