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