jsonresponse.php
2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
/**
* @package Joomla.Administrator
* @subpackage com_languages
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* JSON Response class.
*
* @since 2.5
* @deprecated 4.0
*/
class JJsonResponse
{
/**
* Determines whether the request was successful.
*
* @var boolean
* @since 2.5
*/
public $success = true;
/**
* Determines whether the request wasn't successful.
* This is always the negation of $this->success,
* so you can use both flags equivalently.
*
* @var boolean
* @since 2.5
*/
public $error = false;
/**
* The main response message.
*
* @var string
* @since 2.5
*/
public $message = null;
/**
* Array of messages gathered in the JApplication object.
*
* @var array
* @since 2.5
*/
public $messages = null;
/**
* The response data.
*
* @var mixed
* @since 2.5
*/
public $data = null;
/**
* Constructor
*
* @param mixed $response The Response data.
* @param string $message The main response message.
* @param boolean $error True, if the success flag shall be set to false, defaults to false.
*
* @since 2.5
* @deprecated 4.0 Use JResponseJson instead.
*/
public function __construct($response = null, $message = null, $error = false)
{
try
{
JLog::add(sprintf('%s is deprecated, use JResponseJson instead.', __CLASS__), JLog::WARNING, 'deprecated');
}
catch (RuntimeException $exception)
{
// Informational log only
}
$this->message = $message;
// Get the message queue.
$messages = JFactory::getApplication()->getMessageQueue();
// Build the sorted messages list.
if (is_array($messages) && count($messages))
{
foreach ($messages as $message)
{
if (isset($message['type']) && isset($message['message']))
{
$lists[$message['type']][] = $message['message'];
}
}
}
// If messages exist add them to the output.
if (isset($lists) && is_array($lists))
{
$this->messages = $lists;
}
// Check if we are dealing with an error.
if ($response instanceof Exception)
{
// Prepare the error response.
$this->success = false;
$this->error = true;
$this->message = $response->getMessage();
}
else
{
// Prepare the response data.
$this->success = !$error;
$this->error = $error;
$this->data = $response;
}
}
/**
* Magic toString method for sending the response in JSON format.
*
* @return string The response in JSON format.
*
* @since 2.5
*/
public function __toString()
{
return json_encode($this);
}
}