// Copyright 2014 beego Author. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package context import ( "github.com/astaxie/beego/server/web/context" ) // BeegoOutput does work for sending response header. type BeegoOutput context.BeegoOutput // NewOutput returns new BeegoOutput. // it contains nothing now. func NewOutput() *BeegoOutput { return (*BeegoOutput)(context.NewOutput()) } // Reset init BeegoOutput func (output *BeegoOutput) Reset(ctx *Context) { (*context.BeegoOutput)(output).Reset((*context.Context)(ctx)) } // Header sets response header item string via given key. func (output *BeegoOutput) Header(key, val string) { (*context.BeegoOutput)(output).Header(key, val) } // Body sets response body content. // if EnableGzip, compress content string. // it sends out response body directly. func (output *BeegoOutput) Body(content []byte) error { return (*context.BeegoOutput)(output).Body(content) } // Cookie sets cookie value via given key. // others are ordered as cookie's max age time, path,domain, secure and httponly. func (output *BeegoOutput) Cookie(name string, value string, others ...interface{}) { (*context.BeegoOutput)(output).Cookie(name, value, others) } // JSON writes json to response body. // if encoding is true, it converts utf-8 to \u0000 type. func (output *BeegoOutput) JSON(data interface{}, hasIndent bool, encoding bool) error { return (*context.BeegoOutput)(output).JSON(data, hasIndent, encoding) } // YAML writes yaml to response body. func (output *BeegoOutput) YAML(data interface{}) error { return (*context.BeegoOutput)(output).YAML(data) } // JSONP writes jsonp to response body. func (output *BeegoOutput) JSONP(data interface{}, hasIndent bool) error { return (*context.BeegoOutput)(output).JSONP(data, hasIndent) } // XML writes xml string to response body. func (output *BeegoOutput) XML(data interface{}, hasIndent bool) error { return (*context.BeegoOutput)(output).XML(data, hasIndent) } // ServeFormatted serve YAML, XML OR JSON, depending on the value of the Accept header func (output *BeegoOutput) ServeFormatted(data interface{}, hasIndent bool, hasEncode ...bool) { (*context.BeegoOutput)(output).ServeFormatted(data, hasIndent, hasEncode...) } // Download forces response for download file. // it prepares the download response header automatically. func (output *BeegoOutput) Download(file string, filename ...string) { (*context.BeegoOutput)(output).Download(file, filename...) } // ContentType sets the content type from ext string. // MIME type is given in mime package. func (output *BeegoOutput) ContentType(ext string) { (*context.BeegoOutput)(output).ContentType(ext) } // SetStatus sets response status code. // It writes response header directly. func (output *BeegoOutput) SetStatus(status int) { (*context.BeegoOutput)(output).SetStatus(status) } // IsCachable returns boolean of this request is cached. // HTTP 304 means cached. func (output *BeegoOutput) IsCachable() bool { return (*context.BeegoOutput)(output).IsCachable() } // IsEmpty returns boolean of this request is empty. // HTTP 201,204 and 304 means empty. func (output *BeegoOutput) IsEmpty() bool { return (*context.BeegoOutput)(output).IsEmpty() } // IsOk returns boolean of this request runs well. // HTTP 200 means ok. func (output *BeegoOutput) IsOk() bool { return (*context.BeegoOutput)(output).IsOk() } // IsSuccessful returns boolean of this request runs successfully. // HTTP 2xx means ok. func (output *BeegoOutput) IsSuccessful() bool { return (*context.BeegoOutput)(output).IsSuccessful() } // IsRedirect returns boolean of this request is redirection header. // HTTP 301,302,307 means redirection. func (output *BeegoOutput) IsRedirect() bool { return (*context.BeegoOutput)(output).IsRedirect() } // IsForbidden returns boolean of this request is forbidden. // HTTP 403 means forbidden. func (output *BeegoOutput) IsForbidden() bool { return (*context.BeegoOutput)(output).IsForbidden() } // IsNotFound returns boolean of this request is not found. // HTTP 404 means not found. func (output *BeegoOutput) IsNotFound() bool { return (*context.BeegoOutput)(output).IsNotFound() } // IsClientError returns boolean of this request client sends error data. // HTTP 4xx means client error. func (output *BeegoOutput) IsClientError() bool { return (*context.BeegoOutput)(output).IsClientError() } // IsServerError returns boolean of this server handler errors. // HTTP 5xx means server internal error. func (output *BeegoOutput) IsServerError() bool { return (*context.BeegoOutput)(output).IsServerError() } // Session sets session item value with given key. func (output *BeegoOutput) Session(name interface{}, value interface{}) { (*context.BeegoOutput)(output).Session(name, value) }