Reporting: Report Session

This endpoint enables direct reporting into the POOL TrackTrends system. However, the DJ session must be properly formatted into a JSON format in order for the report to succeed. The JSON structure is outlined below.

Report Session Specification

Parameters: POST variables: Header variables:
  1. userid: integer
  2. token: string
JSON list returned:
  • userid: Integer
  • session_file: String
  • session_date: Integer (Unix Timestamp)
  • tracks: List
    • order: Integer
    • start: Integer (Unix Timestamp)
    • end: Integer (Unix Timestamp)
    • artist: String
    • title: String
  • Report Session Workflow

    1. URL: https://api.promoonly.com/tracktrends/report
    2. Header: Authorization: Bearer Base64(userid:token)
    3. Method: POST
    4. Returned: JSON

      Example JSON Output

      {
          "userid": 1,
          "session_file": "6491.session",
          "session_date": 1405459954,
          tracks:
          [
              {
                  "order": 1,
                  "start": 1405459954,
                  "end": 140540134,
                  "artist": "Styx",
                  "title": "Come Sail Away"
              },
              {
                  "order": 1,
                  "start": 140540134,
                  "end": 140540314,
                  "artist": "Paul Simon",
                  "title": "You Can Call Me Al"
              },
              {
                  "order": 1,
                  "start": 140540314,
                  "end": 1405460494,
                  "artist": "Twenty One Pilots",
                  "title": "Stressed Out"
              }
          ]
      }

    Examples

    1. PHP (using cURL):

      <?php
          $userid = 1;
          $token = "8b26e1e4f3f5e00a888807e605565c47";
          $session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,';
          $session_data .= 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}';
          $post_fields = 'session_data='.$session_data;
          $api_url = "https://api.promoonly.com/tracktrends/report";

          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $api_url);
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
          curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".base64_encode($userid.":".$token)));
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          $api_result = curl_exec($ch);
          curl_close($ch);

          $api_obj = json_decode($api_result);
      ?>
    2. Javascript (using jQuery):

      function b64EncodeUnicode(str)
      {
          return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
              function toSolidBytes(match, p1)
              {
                  return String.fromCharCode('0x' + p1);
              }));
      }

      var userid = 1;
      var token = "8b26e1e4f3f5e00a888807e605565c47";
      var auth_str = "Bearer " + b64EncodeUnicode(userid + ":" + token);
      var session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,';
      session_data += 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}';

      $.ajax({
          type: "POST",
          url: "https://api.promoonly.com/tracktrends/report",
          headers: { "Authorization": auth_str },
          data: { session_data: session_data },
          dataType: "json",
          success: function (data)
          {
              console.log(data);
          }
      });
    3. Python (using requests):

      #!/usr/bin/env python

      import requests
      import base64
      import urllib

      userid = 1
      token = "8b26e1e4f3f5e00a888807e605565c47"
      session_data = '{"userid":1,"session_file":"6491.session","session_date":1405459954,'
      session_data += 'tracks:[{"order":1,"start":1405459954,"end":14050134,"artist":"Styx","title":"Come Sail Away"}]}'

      b64_key = base64.b64encode("%s:%s" % (userid, token))
      headers = {"Authorization": "Bearer %s" % b64_key}
      api_url = "https://api.promoonly.com/tracktrends/sessions/1"
      result_return = requests.post(api_url, headers=headers, data={"session_data": session_data})

      print(result_return.text)