ducky/web

Paddy 2015-06-30 Parent:a641906b8267

12:791aec3eb17b Go to Latest

ducky/web/src/components/validation-error.jsx

Update our profile model to use our refresh helper. Update our profile model to send the correct authorization header when making requests, and if the request fails because the OAuth token has expired, try to use the refresh token to obtain a new access token, then retry the request.

History
paddy@2 1 import React from 'react'
paddy@2 2
paddy@2 3 export default React.createClass({
paddy@2 4 displayName: 'ValidationError',
paddy@2 5
paddy@2 6 render () {
paddy@5 7 let fields = this.props.fields
paddy@5 8 if (this.props.field && !this.props.fields) {
paddy@5 9 fields = [this.props.field]
paddy@5 10 }
paddy@6 11 let notFields = this.props.notFields
paddy@6 12 if (this.props.notField && !this.props.notFields) {
paddy@6 13 notFields = [this.props.notField]
paddy@6 14 }
paddy@5 15 let params = this.props.params
paddy@5 16 if (this.props.param && !this.props.params) {
paddy@5 17 params = [this.props.param]
paddy@5 18 }
paddy@6 19 let notParams = this.props.notParams
paddy@6 20 if (this.props.notParam && !this.props.notParams) {
paddy@6 21 notParams = [this.props.notParam]
paddy@6 22 }
paddy@5 23 let headers = this.props.headers
paddy@5 24 if (this.props.header && !this.props.headers) {
paddy@5 25 headers = [this.props.header]
paddy@5 26 }
paddy@6 27 let notHeaders = this.props.notHeaders
paddy@6 28 if (this.props.notHeader && !this.props.notHeaders) {
paddy@6 29 notHeaders = [this.props.notHeader]
paddy@6 30 }
paddy@2 31 const outputs = this.props.outputs
paddy@2 32 const errors = this.props.errors
paddy@6 33
paddy@2 34 return (
paddy@2 35 <div className={errors.length ? '' : 'hidden' }>
paddy@2 36 {errors.map(error => {
paddy@2 37 let errorString = ''
paddy@6 38 if (!error.field && !notFields && !error.param && !notParams && !error.header && !notHeaders) {
paddy@4 39 return ''
paddy@4 40 }
paddy@5 41 if (fields && error.field && fields.indexOf(error.field) < 0) {
paddy@2 42 return ''
paddy@2 43 }
paddy@6 44 if (notFields && error.field && notFields.indexOf(error.field) >= 0) {
paddy@6 45 return ''
paddy@6 46 }
paddy@5 47 if (params && error.param && params.indexOf(error.param) < 0) {
paddy@2 48 return ''
paddy@2 49 }
paddy@6 50 if (notParams && error.param && notParams.indexOf(error.param) >= 0) {
paddy@6 51 return ''
paddy@6 52 }
paddy@5 53 if (headers && error.header && headers.indexOf(error.header) < 0) {
paddy@2 54 return ''
paddy@2 55 }
paddy@6 56 if (notHeaders && error.header && notHeaders.indexOf(error.header) >= 0) {
paddy@6 57 return ''
paddy@6 58 }
paddy@2 59 if (outputs[error.error] == undefined) {
paddy@2 60 errorString = 'An unknown error occurred. Please contact support. Sorry.'
paddy@2 61 } else {
paddy@2 62 errorString = outputs[error.error]
paddy@2 63 }
paddy@2 64 const id = [error.field, error.param, error.header, error.error].join("|")
paddy@2 65 return <div key={id} className="flash-error validation"><span>{errorString}</span></div>
paddy@2 66 })}
paddy@2 67 </div>
paddy@2 68 )
paddy@2 69 }
paddy@2 70 })