1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Api2
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * API Response model
29: *
30: * @category Mage
31: * @package Mage_Api2
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Api2_Model_Response extends Zend_Controller_Response_Http
35: {
36: /**
37: * Character set which must be used in response
38: */
39: const RESPONSE_CHARSET = 'utf-8';
40:
41: /**#@+
42: * Default message types
43: */
44: const MESSAGE_TYPE_SUCCESS = 'success';
45: const MESSAGE_TYPE_ERROR = 'error';
46: const MESSAGE_TYPE_WARNING = 'warning';
47: /**#@- */
48:
49: /**
50: * Messages
51: *
52: * @var array
53: */
54: protected $_messages = array();
55:
56: /**
57: * Set header appropriate to specified MIME type
58: *
59: * @param string $mimeType MIME type
60: * @return Mage_Api2_Model_Response
61: */
62: public function setMimeType($mimeType)
63: {
64: return $this->setHeader('Content-Type', "{$mimeType}; charset=" . self::RESPONSE_CHARSET, true);
65: }
66:
67: /**
68: * Add message to responce
69: *
70: * @param string $message
71: * @param string $code
72: * @param array $params
73: * @param string $type
74: * return Mage_Api2_Model_Response
75: */
76: public function addMessage($message, $code, $params = array(), $type = self::MESSAGE_TYPE_ERROR)
77: {
78: $params['message'] = $message;
79: $params['code'] = $code;
80: $this->_messages[$type][] = $params;
81: return $this;
82: }
83:
84: /**
85: * Has messages
86: *
87: * @return bool
88: */
89: public function hasMessages()
90: {
91: return (bool)count($this->_messages) > 0;
92: }
93:
94: /**
95: * Return messages
96: *
97: * @return array
98: */
99: public function getMessages()
100: {
101: return $this->_messages;
102: }
103:
104: /**
105: * Clear messages
106: *
107: * return Mage_Api2_Model_Response
108: */
109: public function clearMessages()
110: {
111: $this->_messages = array();
112: return $this;
113: }
114: }
115: