MediaWiki REL1_31
ApiFormatRaw.php
Go to the documentation of this file.
1<?php
28
30 private $mFailWithHTTPError = false;
31
36 public function __construct( ApiMain $main, ApiFormatBase $errorFallback = null ) {
37 parent::__construct( $main, 'raw' );
38 if ( $errorFallback === null ) {
39 $this->errorFallback = $main->createPrinterByName( $main->getParameter( 'format' ) );
40 } else {
41 $this->errorFallback = $errorFallback;
42 }
43 }
44
45 public function getMimeType() {
46 $data = $this->getResult()->getResultData();
47
48 if ( isset( $data['error'] ) || isset( $data['errors'] ) ) {
49 return $this->errorFallback->getMimeType();
50 }
51
52 if ( !isset( $data['mime'] ) ) {
53 ApiBase::dieDebug( __METHOD__, 'No MIME type set for raw formatter' );
54 }
55
56 return $data['mime'];
57 }
58
59 public function getFilename() {
60 $data = $this->getResult()->getResultData();
61 if ( isset( $data['error'] ) ) {
62 return $this->errorFallback->getFilename();
63 } elseif ( !isset( $data['filename'] ) || $this->getIsWrappedHtml() || $this->getIsHtml() ) {
64 return parent::getFilename();
65 } else {
66 return $data['filename'];
67 }
68 }
69
70 public function initPrinter( $unused = false ) {
71 $data = $this->getResult()->getResultData();
72 if ( isset( $data['error'] ) || isset( $data['errors'] ) ) {
73 $this->errorFallback->initPrinter( $unused );
74 if ( $this->mFailWithHTTPError ) {
75 $this->getMain()->getRequest()->response()->statusHeader( 400 );
76 }
77 } else {
78 parent::initPrinter( $unused );
79 }
80 }
81
82 public function closePrinter() {
83 $data = $this->getResult()->getResultData();
84 if ( isset( $data['error'] ) || isset( $data['errors'] ) ) {
85 $this->errorFallback->closePrinter();
86 } else {
87 parent::closePrinter();
88 }
89 }
90
91 public function execute() {
92 $data = $this->getResult()->getResultData();
93 if ( isset( $data['error'] ) || isset( $data['errors'] ) ) {
94 $this->errorFallback->execute();
95 return;
96 }
97
98 if ( !isset( $data['text'] ) ) {
99 ApiBase::dieDebug( __METHOD__, 'No text given for raw formatter' );
100 }
101 $this->printText( $data['text'] );
102 }
103
113 public function setFailWithHTTPError( $fail ) {
114 $this->mFailWithHTTPError = $fail;
115 }
116}
getParameter( $paramName, $parseLimit=true)
Get a value for the given parameter.
Definition ApiBase.php:773
static dieDebug( $method, $message)
Internal code errors should be reported with this method.
Definition ApiBase.php:2078
getMain()
Get the main module.
Definition ApiBase.php:537
getResult()
Get the result object.
Definition ApiBase.php:641
This is the abstract base class for API formatters.
printText( $text)
Append text to the output buffer.
getIsWrappedHtml()
Returns true when the special wrapped mode is enabled.
getIsHtml()
Returns true when the HTML pretty-printer should be used.
Formatter that spits out anything you like with any desired MIME type.
initPrinter( $unused=false)
Initialize the printer function and prepare the output headers.
closePrinter()
Finish printing and output buffered data.
setFailWithHTTPError( $fail)
Output HTTP error code 400 when if an error is encountered.
__construct(ApiMain $main, ApiFormatBase $errorFallback=null)
getMimeType()
Overriding class returns the MIME type that should be sent to the client.
execute()
Evaluates the parameters, performs the requested query, and sets up the result.
getFilename()
Return a filename for this module's output.
This is the main API class, used for both external and internal processing.
Definition ApiMain.php:43
createPrinterByName( $format)
Create an instance of an output formatter by its name.
Definition ApiMain.php:488