Skip to content

Commit

Permalink
Add response code
Browse files Browse the repository at this point in the history
  • Loading branch information
Raathigesh committed Jun 1, 2016
1 parent f9b5daf commit 5d9650c
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/client/components/Header.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ class Header extends Component {
return (
<div className="ui fluid small menu hermesHeader">
<div className="ui container" style={{width: '90% !important'}}>
{/*<div className="item">
<img src={require("../asset/DashboardLogo.png")} />
</div>*/}
<div className="item">
<div>
<label htmlFor="file" className="ui icon blue basic button" style={{color: '#91D0FF !important'}}>
Expand Down
85 changes: 85 additions & 0 deletions src/client/components/ResponseCode.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import React, {Component, PropTypes} from 'react';

class ResponseCode extends Component {
constructor(props) {
super(props);
this.state = {
responseCodes: [{
label: '200 OK',
value: '200'
}, {
label: '201 Created',
value: '201'
}, {
label: '204 No Content',
value: '204'
}, {
label: '304 Not Modified',
value: '304'
}, {
label: '400 Bad Request',
value: '400'
}, {
label: '401 Unauthorized',
value: '401'
}, {
label: '403 Forbidden',
value: '403'
}, {
label: '404 Not Found',
value: '404'
}, {
label: '500 Internal Server Error',
value: '500'
}]
}
}
componentDidMount() {
$(this.refs.responseCodeDropdown).dropdown();
}

handleOnChange = (value) => {
this.props.onChange(value);
}

getLabel = (value) => {
for(let code of this.state.responseCodes) {
if (code.value === value) {
return code.label;
}
}
}

getCode = () => {
return this.props.selectedValue;
}

render() {
let items = this.state.responseCodes.map((responseCode) => {
return (<div className="item" onClick={() => { this.handleOnChange(responseCode.value) }}>
{responseCode.label}
</div>);
});

return (
<div ref="responseCodeDropdown" className="ui floating blue labeled icon dropdown button">
<i className="wizard icon"></i>
<span className="text">{this.getLabel(this.props.selectedValue)}</span>
<div className="menu">
<div className="header">
<i className="tags icon"></i>
Response Code
</div>
<div className="divider"></div>
{items}
</div>
</div>
);
}
}

ResponseCode.propTypes = {
responseCode: PropTypes.string
}

export default ResponseCode;
8 changes: 7 additions & 1 deletion src/client/components/Url.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { Component, PropTypes } from 'react'
import React, { Component, PropTypes } from 'react';
import {observer} from 'mobx-react';
import classnames from 'classnames';
import ResponseCode from './ResponseCode';

@observer
class Url extends Component {
Expand All @@ -19,6 +20,10 @@ class Url extends Component {
handleMethodChange = (e) => {
this.props.endpoint.setMethod(e.target.value);
}

handleResponseCodeChange = (code) => {
this.props.endpoint.response.setResponseCode(code);
}

render () {
return (
Expand All @@ -38,6 +43,7 @@ class Url extends Component {
<option value="LOCK">LOCK</option>
<option value="UNLOCK">UNLOCK</option>
</select>
<ResponseCode selectedValue={this.props.endpoint.response.responseCode} onChange={this.handleResponseCodeChange}/>
<div type="button" className={classnames('ui red button ', {'disabled': this.props.totalEndpoints === 1})} onClick={this.props.deleteEndpoint}>Delete</div>
</div>
);
Expand Down
6 changes: 6 additions & 0 deletions src/client/models/Response.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ export default class Response {
@observable type;
@observable content;
@observable contentType;
@observable responseCode;

constructor(type, content) {
this.type = type;
this.content = content;
this.contentType = ContentTypes[0];
this.responseCode = '200';
}

setType = (type) => {
Expand All @@ -20,4 +22,8 @@ export default class Response {
setContentType = (contentType) => {
this.contentType = contentType;
}

setResponseCode = (code) => {
this.responseCode = code;
}
}
1 change: 1 addition & 0 deletions src/server/apiServer/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ function addRoute(endpoint) {
function responseCallback(req, res, endpoint) {
setHeaders(res, endpoint.headers);
setContentTypeHeader(res, endpoint.response.contentType.contentType);
res.status(endpoint.response.responseCode);
res.send(endpoint.response.content);
}

Expand Down

0 comments on commit 5d9650c

Please sign in to comment.