|
|
|
@ -1372,6 +1372,7 @@ func (h *Handlers) InitiateTransaction(ctx context.Context, sym string, input []
|
|
|
|
|
func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
|
|
|
|
var res resource.Result
|
|
|
|
|
var profileInfo []byte
|
|
|
|
|
var defaultValue string
|
|
|
|
|
var err error
|
|
|
|
|
|
|
|
|
|
flag_firstname_set, _ := h.flagManager.GetFlag("flag_firstname_set")
|
|
|
|
@ -1388,7 +1389,18 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
if !ok {
|
|
|
|
|
return res, fmt.Errorf("missing session")
|
|
|
|
|
}
|
|
|
|
|
// Extract the field name from the state machine position.
|
|
|
|
|
language, ok := ctx.Value("Language").(lang.Language)
|
|
|
|
|
if !ok {
|
|
|
|
|
return res, fmt.Errorf("value for 'Language' is not of type lang.Language")
|
|
|
|
|
}
|
|
|
|
|
code := language.Code
|
|
|
|
|
if code == "swa" {
|
|
|
|
|
defaultValue = "Haipo"
|
|
|
|
|
} else {
|
|
|
|
|
defaultValue = "Not Provided"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sm, _ := h.st.Where()
|
|
|
|
|
parts := strings.SplitN(sm, "_", 2)
|
|
|
|
|
filename := parts[1]
|
|
|
|
@ -1405,7 +1417,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_FIRST_NAME)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read first name entry with", "key", "error", common.DATA_FIRST_NAME, err)
|
|
|
|
@ -1417,7 +1429,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_FAMILY_NAME)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read family name entry with", "key", "error", common.DATA_FAMILY_NAME, err)
|
|
|
|
@ -1430,7 +1442,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_GENDER)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read gender entry with", "key", "error", common.DATA_GENDER, err)
|
|
|
|
@ -1442,7 +1454,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_YOB)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read year of birth(yob) entry with", "key", "error", common.DATA_YOB, err)
|
|
|
|
@ -1454,7 +1466,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_LOCATION)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read location entry with", "key", "error", common.DATA_LOCATION, err)
|
|
|
|
@ -1466,7 +1478,7 @@ func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input
|
|
|
|
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_OFFERINGS)
|
|
|
|
|
if err != nil {
|
|
|
|
|
if db.IsNotFound(err) {
|
|
|
|
|
res.Content = "Not provided"
|
|
|
|
|
res.Content = defaultValue
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
logg.ErrorCtxf(ctx, "Failed to read offerings entry with", "key", "error", common.DATA_OFFERINGS, err)
|
|
|
|
@ -2020,15 +2032,16 @@ func (h *Handlers) insertProfileItems(ctx context.Context, sessionId string, res
|
|
|
|
|
for index, profileItem := range h.profile.ProfileItems {
|
|
|
|
|
// Ensure the profileItem is not "0"(is set)
|
|
|
|
|
if profileItem != "0" {
|
|
|
|
|
err = store.WriteEntry(ctx, sessionId, profileDataKeys[index], []byte(profileItem))
|
|
|
|
|
if err != nil {
|
|
|
|
|
logg.ErrorCtxf(ctx, "failed to write profile entry with", "key", profileDataKeys[index], "value", profileItem, "error", err)
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Get the flag for the current index
|
|
|
|
|
flag, _ := h.flagManager.GetFlag(profileFlagNames[index])
|
|
|
|
|
res.FlagSet = append(res.FlagSet, flag)
|
|
|
|
|
isProfileItemSet := h.st.MatchFlag(flag, true)
|
|
|
|
|
if !isProfileItemSet {
|
|
|
|
|
err = store.WriteEntry(ctx, sessionId, profileDataKeys[index], []byte(profileItem))
|
|
|
|
|
if err != nil {
|
|
|
|
|
logg.ErrorCtxf(ctx, "failed to write profile entry with", "key", profileDataKeys[index], "value", profileItem, "error", err)
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
res.FlagSet = append(res.FlagSet, flag)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|