/ src / server / validators.js
validators.js
  1  import state from './state.js'
  2  
  3  export default {
  4    isValidName(val, errRes){
  5        let taken = state.serverState.members.some(m =>{
  6            return val.toUpperCase() === m.name.toUpperCase()
  7        })
  8        if (taken) {
  9            errRes.push('name already taken')
 10            return false
 11        }
 12        if (val.length > 140){
 13            errRes.push('name too long')
 14            return false
 15        }
 16        return true
 17    },
 18    isAmount(val, errRes){
 19        let parsed = parseFloat(val)
 20        if (parsed !== 0 && !parsed) {
 21            errRes.push('amount must be a number')
 22            return false
 23        }
 24        if (parsed < 0){
 25            errRes.push('amount must be positive')
 26            return false
 27        }
 28        return parsed >= 0
 29    },
 30    isField(val, errRes){
 31        let isField = (
 32            val === 'name' ||
 33            val === 'email' ||
 34            val === 'secret' ||
 35            val === 'fob' ||
 36            val === 'muted' ||
 37            val === 'tooltips' ||
 38            val === 'stacks' ||
 39            val === 'action' ||
 40            val === 'guides' ||
 41            val === 'payments'
 42        )
 43        if (!isField) {
 44            errRes.push('invalid field')
 45            return false
 46        }
 47        return isField
 48    },
 49    isAddress(val, errRes){
 50        let result = state.serverState.ao.some(ao =>{
 51            if (val === ao.address){
 52              return true
 53            }
 54        })
 55        if (!result) {
 56            errRes.push('invalid address')
 57        }
 58        return result
 59    },
 60    isMemberId(val, errRes){
 61        let member = false
 62        let result = state.serverState.members.some(m =>{
 63            if (val === m.memberId){
 64              member = m
 65              return true
 66            }
 67        })
 68        if (!result) {
 69            errRes.push('invalid member')
 70        }
 71        return member
 72    },
 73  
 74    isActiveMemberId(val, errRes){
 75        let member = false
 76        let result = state.serverState.members.some(m =>{
 77            if (val === m.memberId && m.active > 0){
 78                member = m
 79                return true
 80            }
 81        })
 82        if (!result) {
 83            errRes.push('invalid member')
 84        }
 85        return member
 86    },
 87    isTaskId(val, errRes){
 88        let task = false
 89        let result = state.serverState.tasks.some(t =>{
 90            if (val === t.taskId){
 91              task = t
 92              return true
 93            }
 94        })
 95        if (!result) {
 96            errRes.push('invalid task')
 97        }
 98        return task
 99    },
100    isSession(val, errRes){
101        let result = false
102        state.serverState.sessions.forEach(s => {
103            if (val === s.session){
104              result = true
105            }
106        })
107        if (!result) {
108            errRes.push('invalid session')
109        }
110        return result
111    },
112    isResourceId(val, errRes){
113        let resource
114        let result = state.serverState.resources.some(r =>{
115            if (val === r.resourceId){
116              resource = r
117              return true
118            }
119        })
120        if (!result) {
121            errRes.push('invalid resource')
122        }
123        return resource
124    },
125    isNewResourceId(val, errRes){
126        let isNew = true
127        state.serverState.resources.forEach(resource =>{
128            if (val == resource.resourceId){
129              isNew = false
130            }
131        })
132        if (!isNew){
133            errRes.push('resourceId exists')
134        }
135        return isNew
136    },
137    isBool(val, errRes){
138        let isBool = (typeof val === 'boolean')
139        if (!isBool){
140            errRes.push('field requires boolean')
141        }
142        return isBool
143    },
144    isNotes(val, errRes){
145        return !!val
146    },
147    yesSir(){
148        return true
149    }
150  }
151