-
Notifications
You must be signed in to change notification settings - Fork 0
/
in-param-srvc.go
36 lines (28 loc) · 1.19 KB
/
in-param-srvc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package apido
// CheckReq check input params of request (url or body) and params of method
// If params doesnt match - return errors as a map
// methodParams: [{in:form, name:my_param, description:super, format:int16}]
// reqParams {my_param:req_value1, other_param: req_value2}
func CheckReq(methodParams []InParam, reqParams map[string]string) (map[string]interface{}, map[string]ValidCond) {
validCondParams := make(map[string]ValidCond)
var fixedParams map[string]interface{} = make(map[string]interface{})
for _, mp := range methodParams {
// Send req value to inparam
// IsMatchValue("superdatafromurl")
// If reqParams["some"] doesnt exists - send empty string ""
reqParamVal, reqParamOk := reqParams[mp.Name]
// if reqparam is not exist and it is not required - return null
// else - check and convert
// if validCond is not empty - outValue is nil
outValue, validCond := mp.IsMatchValue(reqParamVal, reqParamOk)
if validCond.IsValidated() == false {
//result = false
validCondParams[mp.Name] = validCond
} else {
fixedParams[mp.Name] = outValue
//fmt.Printf("outvalue: %v %T", outValue, outValue);
//fmt.Println()
}
}
return fixedParams, validCondParams
}