Cutelyst  1.11.0
Public Types | Public Member Functions | List of all members
Cutelyst::ViewJson Class Reference

JSON view for your data. More...

#include <Cutelyst/Plugins/JSON/viewjson.h>

Inheritance diagram for Cutelyst::ViewJson:
Inheritance graph
[legend]

Public Types

enum  ExposeMode { All, String, StringList, RegularExpression }
 
enum  JsonFormat { Indented, Compact }
 
- Public Types inherited from Cutelyst::Component
enum  Modifier {
  None, OnlyExecute, BeforeExecute, AroundExecute,
  AfterExecute
}
 

Public Member Functions

 ViewJson (QObject *parent, const QString &name=QString())
 
ExposeMode exposeStashMode () const
 
JsonFormat outputFormat () const
 
QByteArray render (Context *c) const final
 
void setExposeStash (const QString &key)
 
void setExposeStash (const QStringList &keys)
 
void setExposeStash (const QRegularExpression &re)
 
Q_DECL_DEPRECATED void setExposeStashRegularExpression (const QRegularExpression &re)
 
Q_DECL_DEPRECATED void setExposeStashString (const QString &key)
 
Q_DECL_DEPRECATED void setExposeStashStringList (const QStringList &keys)
 
void setOutputFormat (JsonFormat format)
 
void setXJsonHeader (bool enable)
 
bool xJsonHeader () const
 
- Public Member Functions inherited from Cutelyst::View
 View (QObject *parent, const QString &name=QString())
 
virtual Modifiers modifiers () const override
 
QString name () const
 
- Public Member Functions inherited from Cutelyst::Component
 Component (QObject *parent=nullptr)
 
bool execute (Context *c)
 
virtual bool init (Application *application, const QVariantHash &args)
 
QString name () const
 
QString reverse () const
 
void setName (const QString &name)
 
void setReverse (const QString &reverse)
 

Additional Inherited Members

- Protected Member Functions inherited from Cutelyst::Component
virtual bool afterExecute (Context *c)
 
void applyRoles (const QStack< Component * > &roles)
 
virtual bool aroundExecute (Context *c, QStack< Component * > stack)
 
virtual bool beforeExecute (Context *c)
 
virtual bool dispatcherReady (const Dispatcher *dispatch, Controller *controller)
 

Detailed Description

Cutelyst::ViewJSON is a Cutelyst View handler that returns stash data in JSON format.

Definition at line 27 of file viewjson.h.

Member Enumeration Documentation

This value defines which kind of exposition was defined

Definition at line 57 of file viewjson.h.

This value defines the format of the JSON byte array produced when rendering the view

Enumerator
Indented 

The output will be indented

Compact 

The output will be compact saving space

Definition at line 39 of file viewjson.h.

Constructor & Destructor Documentation

ViewJson::ViewJson ( QObject *  parent,
const QString &  name = QString() 
)
explicit

Main constructor

Definition at line 34 of file viewjson.cpp.

Member Function Documentation

ViewJson::ExposeMode ViewJson::exposeStashMode ( ) const

Returns the expose mode of the stash keys, defaults to everything (All)

Definition at line 70 of file viewjson.cpp.

ViewJson::JsonFormat ViewJson::outputFormat ( ) const

Returns the output format of JSON, defaults to Compact

Definition at line 45 of file viewjson.cpp.

References Compact, and Indented.

QByteArray ViewJson::render ( Context c) const
finalvirtual

All subclasses must reimplement this when doing it's rendering. If an error (c->error()) is not set c->response()->body() is defined with the returned value, this is useful if the view is not meant to be used as a body.

Implements Cutelyst::View.

Definition at line 124 of file viewjson.cpp.

References Cutelyst::Context::response(), Cutelyst::Response::setContentType(), Cutelyst::Response::setHeader(), and Cutelyst::Context::stash().

void ViewJson::setExposeStash ( const QString &  key)

Specify which stash key is exposed as a JSON response, this will change exposeStashMode() to ViewJson::String

Definition at line 76 of file viewjson.cpp.

Referenced by setExposeStashRegularExpression(), setExposeStashString(), and setExposeStashStringList().

void ViewJson::setExposeStash ( const QStringList &  keys)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::StringList

Definition at line 83 of file viewjson.cpp.

void ViewJson::setExposeStash ( const QRegularExpression &  re)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::RegularExpression

Definition at line 90 of file viewjson.cpp.

void ViewJson::setExposeStashRegularExpression ( const QRegularExpression &  re)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::RegularExpression

Definition at line 119 of file viewjson.cpp.

References setExposeStash().

void ViewJson::setExposeStashString ( const QString &  key)

Specify which stash key is exposed as a JSON response, this will change exposeStashMode() to ViewJson::String

Definition at line 109 of file viewjson.cpp.

References setExposeStash().

void ViewJson::setExposeStashStringList ( const QStringList &  keys)

Specify which stash keys are exposed as a JSON response, this will change exposeStashMode() to ViewJson::StringList

Definition at line 114 of file viewjson.cpp.

References setExposeStash().

void ViewJson::setOutputFormat ( JsonFormat  format)

Defines the output format of JSON

Definition at line 58 of file viewjson.cpp.

References Compact, and Indented.

void ViewJson::setXJsonHeader ( bool  enable)

By default this plugin does NOT sets X-JSON header if the requested client is a Prototype.js with X-JSON support. By setting true, you can opt-out this behavior so that you do not need to do eval() by your own.

Definition at line 97 of file viewjson.cpp.

bool ViewJson::xJsonHeader ( ) const

Returns true if the X-JSON header should be sent

Definition at line 103 of file viewjson.cpp.