package parser import ( Mapper "cf-experian/module_server/handlers/Mapper" Model "cf-experian/module_server/handlers/Model" Uploader "cf-experian/module_server/handlers/Modules/Uploader" Schema "cf-experian/module_server/handlers/Schema" "encoding/json" "encoding/xml" "errors" "fmt" "strings" log "github.com/rs/zerolog/log" ) func RunParser(payload Schema.Request, sbString string) (string, error) { fmt.Print("RunParser") var createBody Schema.CreateBody createBody.ID = payload.ID createBody.UserID = payload.UserID createBody.ApplicantType = payload.ApplicantType createBody.PanValidation = payload.PanValidation _err := xml.Unmarshal([]byte(sbString), &createBody) if _err != nil { log.Print(_err.Error()) return "", _err } bytes, _ := json.Marshal(createBody) fileName := fmt.Sprint(strings.Replace(payload.ResPath, "xml", "json", -1)) message := Uploader.Upload(string(bytes), fileName) log.Print("Parser: Uploader Message") log.Print(message) /* _ = ioutil.WriteFile(fileName, bytes, 0644) */ if len(createBody.Body.ProcessResponse.Out.INProfileResponse.Header.MessageText) > 0 { log.Print("Parser: MessageText") return "", errors.New(string(createBody.Body.ProcessResponse.Out.INProfileResponse.Header.MessageText)) } if len(createBody.Body.ProcessResponse.Out.INProfileResponse.UserMessage.UserMessageText) > 0 && createBody.Body.ProcessResponse.Out.INProfileResponse.UserMessage.UserMessageText != "Normal Response" { log.Print("Parser: UserMessageText") return "", errors.New(string(createBody.Body.ProcessResponse.Out.INProfileResponse.UserMessage.UserMessageText)) } if payload.RequestType != "merchant" { Model.Save(Mapper.RunMapper(createBody)) } return string(bytes), nil }