|  |  |  | @ -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 | 
		
	
	
		
			
				
					
					|  |  |  | 
 |