forked from urdt/ussd
Merge branch 'master' into profile-edit-show
This commit is contained in:
commit
97741b113b
@ -16,3 +16,6 @@ CREATE_ACCOUNT_URL=http://localhost:5003/api/v2/account/create
|
|||||||
TRACK_STATUS_URL=https://custodial.sarafu.africa/api/track/
|
TRACK_STATUS_URL=https://custodial.sarafu.africa/api/track/
|
||||||
BALANCE_URL=https://custodial.sarafu.africa/api/account/status/
|
BALANCE_URL=https://custodial.sarafu.africa/api/account/status/
|
||||||
TRACK_URL=http://localhost:5003/api/v2/account/status
|
TRACK_URL=http://localhost:5003/api/v2/account/status
|
||||||
|
|
||||||
|
#AfricasTalking USSD POST endpoint
|
||||||
|
AT_ENDPOINT=/ussd/africastalking
|
||||||
|
89
README.md
89
README.md
@ -1,8 +1,91 @@
|
|||||||
# ussd
|
# URDT USSD service
|
||||||
|
|
||||||
> USSD
|
This is a USSD service built using the [go-vise](https://github.com/nolash/go-vise) engine.
|
||||||
|
|
||||||
USSD service.
|
## Prerequisites
|
||||||
|
### 1. [go-vise](https://github.com/nolash/go-vise)
|
||||||
|
|
||||||
|
Set up `go-vise` by cloning the repository into a separate directory. The main upstream repository is hosted at: `https://git.defalsify.org/vise.git`
|
||||||
|
```
|
||||||
|
git clone https://git.defalsify.org/vise.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
1. Clone the ussd repo in its own directory
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://git.grassecon.net/urdt/ussd.git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Navigate to the project directory.
|
||||||
|
3. Enter the `services/registration` subfolder:
|
||||||
|
```
|
||||||
|
cd services/registration
|
||||||
|
```
|
||||||
|
4. make the .bin files from the .vis files
|
||||||
|
```
|
||||||
|
make VISE_PATH=/var/path/to/your/go-vise -B
|
||||||
|
```
|
||||||
|
5. Return to the project root (`cd ../..`)
|
||||||
|
6. Run the USSD menu
|
||||||
|
```
|
||||||
|
go run cmd/main.go -session-id=0712345678
|
||||||
|
```
|
||||||
|
## Running the different binaries
|
||||||
|
1. ### CLI:
|
||||||
|
```
|
||||||
|
go run cmd/main.go -session-id=0712345678
|
||||||
|
```
|
||||||
|
2. ### Africastalking:
|
||||||
|
```
|
||||||
|
go run cmd/africastalking/main.go
|
||||||
|
```
|
||||||
|
3. ### Async:
|
||||||
|
```
|
||||||
|
go run cmd/async/main.go
|
||||||
|
```
|
||||||
|
4. ### Http:
|
||||||
|
```
|
||||||
|
go run cmd/http/main.go
|
||||||
|
```
|
||||||
|
|
||||||
|
## Flags
|
||||||
|
Below are the supported flags:
|
||||||
|
|
||||||
|
1. `-session-id`:
|
||||||
|
|
||||||
|
Specifies the session ID. (CLI only).
|
||||||
|
|
||||||
|
Default: `075xx2123`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
go run cmd/main.go -session-id=0712345678
|
||||||
|
```
|
||||||
|
|
||||||
|
2. `-d`:
|
||||||
|
|
||||||
|
Enables engine debug output.
|
||||||
|
|
||||||
|
Default: `false`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
go run cmd/main.go -session-id=0712345678 -d
|
||||||
|
```
|
||||||
|
|
||||||
|
3. `-db`:
|
||||||
|
|
||||||
|
Specifies the database type.
|
||||||
|
|
||||||
|
Default: `gdbm`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
go run cmd/main.go -session-id=0712345678 -d -db=postgres
|
||||||
|
```
|
||||||
|
|
||||||
|
>Note: If using `-db=postgres`, ensure PostgreSQL is running with the connection details specified in your `.env` file.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
@ -29,10 +29,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
logg = logging.NewVanilla()
|
logg = logging.NewVanilla()
|
||||||
scriptDir = path.Join("services", "registration")
|
scriptDir = path.Join("services", "registration")
|
||||||
InfoLogger *log.Logger
|
InfoLogger *log.Logger
|
||||||
ErrorLogger *log.Logger
|
ErrorLogger *log.Logger
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -197,9 +197,13 @@ func main() {
|
|||||||
rp := &atRequestParser{}
|
rp := &atRequestParser{}
|
||||||
bsh := handlers.NewBaseSessionHandler(cfg, rs, stateStore, userdataStore, rp, hl)
|
bsh := handlers.NewBaseSessionHandler(cfg, rs, stateStore, userdataStore, rp, hl)
|
||||||
sh := httpserver.NewATSessionHandler(bsh)
|
sh := httpserver.NewATSessionHandler(bsh)
|
||||||
|
|
||||||
|
mux := http.NewServeMux()
|
||||||
|
mux.Handle(initializers.GetEnv("AT_ENDPOINT", "/"), sh)
|
||||||
|
|
||||||
s := &http.Server{
|
s := &http.Server{
|
||||||
Addr: fmt.Sprintf("%s:%s", host, strconv.Itoa(int(port))),
|
Addr: fmt.Sprintf("%s:%s", host, strconv.Itoa(int(port))),
|
||||||
Handler: sh,
|
Handler: mux,
|
||||||
}
|
}
|
||||||
s.RegisterOnShutdown(sh.Shutdown)
|
s.RegisterOnShutdown(sh.Shutdown)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user