Compare commits
22 Commits
8b097a4395
...
8c13e44a15
Author | SHA1 | Date | |
---|---|---|---|
8c13e44a15 | |||
345dfbaa21 | |||
381e581e8e | |||
94d2e8203f | |||
f9e51618c5 | |||
f97ad2a262 | |||
59b14301ad | |||
fd2486b5cf | |||
97741b113b | |||
9ebfb643aa | |||
0aad21a52c | |||
68d1628546 | |||
f4f95b3292 | |||
fc8915ea33 | |||
cc36ddcb6d | |||
f3388aef31 | |||
4e170b25e2 | |||
3e258a35fa | |||
f66609bbae | |||
ebdc7b200a | |||
29e1e912d7 | |||
308f3327d0 |
21
common/db.go
21
common/db.go
@ -2,6 +2,7 @@ package common
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
"errors"
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/logging"
|
"git.defalsify.org/vise.git/logging"
|
||||||
)
|
)
|
||||||
@ -48,3 +49,23 @@ func PackKey(typ DataTyp, data []byte) []byte {
|
|||||||
v := typToBytes(typ)
|
v := typToBytes(typ)
|
||||||
return append(v, data...)
|
return append(v, data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func StringToDataTyp(str string) (DataTyp, error) {
|
||||||
|
switch str {
|
||||||
|
case "DATA_FIRST_NAME":
|
||||||
|
return DATA_FIRST_NAME, nil
|
||||||
|
case "DATA_FAMILY_NAME":
|
||||||
|
return DATA_FAMILY_NAME, nil
|
||||||
|
case "DATA_YOB":
|
||||||
|
return DATA_YOB, nil
|
||||||
|
case "DATA_LOCATION":
|
||||||
|
return DATA_LOCATION, nil
|
||||||
|
case "DATA_GENDER":
|
||||||
|
return DATA_GENDER, nil
|
||||||
|
case "DATA_OFFERINGS":
|
||||||
|
return DATA_OFFERINGS, nil
|
||||||
|
|
||||||
|
default:
|
||||||
|
return 0, errors.New("invalid DataTyp string")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -115,6 +115,7 @@ func (ls *LocalHandlerService) GetHandler(accountService remote.AccountServiceIn
|
|||||||
ls.DbRs.AddLocalFunc("reset_unregistered_number", ussdHandlers.ResetUnregisteredNumber)
|
ls.DbRs.AddLocalFunc("reset_unregistered_number", ussdHandlers.ResetUnregisteredNumber)
|
||||||
ls.DbRs.AddLocalFunc("reset_others_pin", ussdHandlers.ResetOthersPin)
|
ls.DbRs.AddLocalFunc("reset_others_pin", ussdHandlers.ResetOthersPin)
|
||||||
ls.DbRs.AddLocalFunc("save_others_temporary_pin", ussdHandlers.SaveOthersTemporaryPin)
|
ls.DbRs.AddLocalFunc("save_others_temporary_pin", ussdHandlers.SaveOthersTemporaryPin)
|
||||||
|
ls.DbRs.AddLocalFunc("get_current_profile_info", ussdHandlers.GetCurrentProfileInfo)
|
||||||
|
|
||||||
return ussdHandlers, nil
|
return ussdHandlers, nil
|
||||||
}
|
}
|
||||||
|
@ -1190,6 +1190,101 @@ func (h *Handlers) InitiateTransaction(ctx context.Context, sym string, input []
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Handlers) GetCurrentProfileInfo(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
|
var res resource.Result
|
||||||
|
var profileInfo []byte
|
||||||
|
var err error
|
||||||
|
sessionId, ok := ctx.Value("SessionId").(string)
|
||||||
|
if !ok {
|
||||||
|
return res, fmt.Errorf("missing session")
|
||||||
|
}
|
||||||
|
sm, _ := h.st.Where()
|
||||||
|
parts := strings.SplitN(sm, "_", 2)
|
||||||
|
filename := parts[1]
|
||||||
|
dbKeyStr := "DATA_" + strings.ToUpper(filename)
|
||||||
|
dbKey, err := common.StringToDataTyp(dbKeyStr)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
store := h.userdataStore
|
||||||
|
|
||||||
|
switch dbKey {
|
||||||
|
case common.DATA_FIRST_NAME:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_FIRST_NAME)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read first name entry with", "key", "error", common.DATA_FIRST_NAME, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
case common.DATA_FAMILY_NAME:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_FAMILY_NAME)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read family name entry with", "key", "error", common.DATA_FAMILY_NAME, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
|
||||||
|
case common.DATA_GENDER:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_GENDER)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read gender entry with", "key", "error", common.DATA_GENDER, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
case common.DATA_YOB:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_YOB)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read year of birth(yob) entry with", "key", "error", common.DATA_YOB, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
|
||||||
|
case common.DATA_LOCATION:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_LOCATION)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read location entry with", "key", "error", common.DATA_LOCATION, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
case common.DATA_OFFERINGS:
|
||||||
|
profileInfo, err = store.ReadEntry(ctx, sessionId, common.DATA_OFFERINGS)
|
||||||
|
if err != nil {
|
||||||
|
if db.IsNotFound(err) {
|
||||||
|
res.Content = "Not provided"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
logg.ErrorCtxf(ctx, "Failed to read offerings entry with", "key", "error", common.DATA_OFFERINGS, err)
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
res.Content = string(profileInfo)
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (h *Handlers) GetProfileInfo(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *Handlers) GetProfileInfo(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
var res resource.Result
|
var res resource.Result
|
||||||
var defaultValue string
|
var defaultValue string
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
MOUT retry 0
|
MOUT retry 1
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
HALT
|
HALT
|
||||||
INCMP _ 0
|
INCMP _ 1
|
||||||
INCMP quit 9
|
INCMP quit 9
|
||||||
|
2
services/registration/edit_family_name
Normal file
2
services/registration/edit_family_name
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Current family name: {{.get_current_profile_info}}
|
||||||
|
Enter family name:
|
@ -1,5 +1,7 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH update_familyname flag_allow_update 1
|
CATCH update_familyname flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD save_familyname 0
|
LOAD save_familyname 0
|
2
services/registration/edit_family_name_swa
Normal file
2
services/registration/edit_family_name_swa
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Jina la familia la sasa: {{.get_current_profile_info}}
|
||||||
|
Weka jina la familia
|
2
services/registration/edit_first_name
Normal file
2
services/registration/edit_first_name
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Current name: {{.get_current_profile_info}}
|
||||||
|
Enter your first names:
|
@ -1,5 +1,8 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH update_firstname flag_allow_update 1
|
CATCH update_firstname flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
|
MAP get_current_profile_info
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD save_firstname 0
|
LOAD save_firstname 0
|
2
services/registration/edit_first_name_swa
Normal file
2
services/registration/edit_first_name_swa
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Jina la kwanza la sasa {{.get_current_profile_info}}
|
||||||
|
Weka majina yako ya kwanza:
|
2
services/registration/edit_location
Normal file
2
services/registration/edit_location
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Current location: {{.get_current_profile_info}}
|
||||||
|
Enter your location:
|
@ -1,5 +1,7 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH update_location flag_allow_update 1
|
CATCH update_location flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD save_location 0
|
LOAD save_location 0
|
2
services/registration/edit_location_swa
Normal file
2
services/registration/edit_location_swa
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Eneo la sasa {{.get_current_profile_info}}
|
||||||
|
Weka eneo:
|
2
services/registration/edit_offerings
Normal file
2
services/registration/edit_offerings
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Current offerings: {{.get_current_profile_info}}
|
||||||
|
Enter the services or goods you offer:
|
@ -1,5 +1,7 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH update_offerings flag_allow_update 1
|
CATCH update_offerings flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
LOAD save_offerings 0
|
LOAD save_offerings 0
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
2
services/registration/edit_offerings_swa
Normal file
2
services/registration/edit_offerings_swa
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Unachouza kwa sasa: {{.get_current_profile_info}}
|
||||||
|
Weka unachouza
|
@ -2,8 +2,8 @@ LOAD reset_account_authorized 16
|
|||||||
RELOAD reset_account_authorized
|
RELOAD reset_account_authorized
|
||||||
LOAD reset_allow_update 0
|
LOAD reset_allow_update 0
|
||||||
RELOAD reset_allow_update
|
RELOAD reset_allow_update
|
||||||
MOUT edit_name 1
|
MOUT edit_first_name 1
|
||||||
MOUT edit_familyname 2
|
MOUT edit_family_name 2
|
||||||
MOUT edit_gender 3
|
MOUT edit_gender 3
|
||||||
MOUT edit_yob 4
|
MOUT edit_yob 4
|
||||||
MOUT edit_location 5
|
MOUT edit_location 5
|
||||||
@ -12,10 +12,10 @@ MOUT view 7
|
|||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
INCMP my_account 0
|
INCMP my_account 0
|
||||||
INCMP enter_name 1
|
INCMP edit_first_name 1
|
||||||
INCMP enter_familyname 2
|
INCMP edit_family_name 2
|
||||||
INCMP select_gender 3
|
INCMP select_gender 3
|
||||||
INCMP enter_yob 4
|
INCMP edit_yob 4
|
||||||
INCMP enter_location 5
|
INCMP edit_location 5
|
||||||
INCMP enter_offerings 6
|
INCMP edit_offerings 6
|
||||||
INCMP view_profile 7
|
INCMP view_profile 7
|
||||||
|
2
services/registration/edit_yob
Normal file
2
services/registration/edit_yob
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Current year of birth: {{.get_current_profile_info}}
|
||||||
|
Enter your year of birth
|
@ -1,8 +1,12 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH update_yob flag_allow_update 1
|
CATCH update_yob flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
|
MAP get_current_profile_info
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD verify_yob 0
|
LOAD verify_yob 6
|
||||||
|
RELOAD verify_yob
|
||||||
CATCH incorrect_date_format flag_incorrect_date_format 1
|
CATCH incorrect_date_format flag_incorrect_date_format 1
|
||||||
LOAD save_yob 0
|
LOAD save_yob 0
|
||||||
RELOAD save_yob
|
RELOAD save_yob
|
2
services/registration/edit_yob_swa
Normal file
2
services/registration/edit_yob_swa
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Mwaka wa sasa wa kuzaliwa {{.get_current_profile_info}}
|
||||||
|
Weka mwaka wa kuzaliwa
|
@ -1 +0,0 @@
|
|||||||
Enter family name:
|
|
@ -1 +0,0 @@
|
|||||||
Weka jina la familia
|
|
@ -1 +0,0 @@
|
|||||||
Enter your location:
|
|
@ -1 +0,0 @@
|
|||||||
Weka eneo:
|
|
@ -1 +0,0 @@
|
|||||||
Enter your first names:
|
|
@ -1 +0,0 @@
|
|||||||
Weka majina yako ya kwanza:
|
|
@ -1 +0,0 @@
|
|||||||
Enter the services or goods you offer:
|
|
@ -1 +0,0 @@
|
|||||||
Weka unachouza
|
|
@ -1 +0,0 @@
|
|||||||
Enter your year of birth
|
|
@ -1 +0,0 @@
|
|||||||
Weka mwaka wa kuzaliwa
|
|
@ -2,5 +2,5 @@ LOAD reset_incorrect_date_format 8
|
|||||||
MOUT retry 1
|
MOUT retry 1
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
HALT
|
HALT
|
||||||
INCMP enter_yob 1
|
INCMP _ 1
|
||||||
INCMP quit 9
|
INCMP quit 9
|
||||||
|
@ -1 +1,2 @@
|
|||||||
|
Current gender: {{.get_current_profile_info}}
|
||||||
Select gender:
|
Select gender:
|
@ -1,5 +1,7 @@
|
|||||||
CATCH incorrect_pin flag_incorrect_pin 1
|
CATCH incorrect_pin flag_incorrect_pin 1
|
||||||
CATCH profile_update_success flag_allow_update 1
|
CATCH profile_update_success flag_allow_update 1
|
||||||
|
LOAD get_current_profile_info 0
|
||||||
|
RELOAD get_current_profile_info
|
||||||
MOUT male 1
|
MOUT male 1
|
||||||
MOUT female 2
|
MOUT female 2
|
||||||
MOUT unspecified 3
|
MOUT unspecified 3
|
||||||
@ -9,7 +11,3 @@ INCMP _ 0
|
|||||||
INCMP set_male 1
|
INCMP set_male 1
|
||||||
INCMP set_female 2
|
INCMP set_female 2
|
||||||
INCMP set_unspecified 3
|
INCMP set_unspecified 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +1,2 @@
|
|||||||
|
Jinsia ya sasa {{.get_current_profile_info}}
|
||||||
Chagua jinsia
|
Chagua jinsia
|
Loading…
Reference in New Issue
Block a user