Conversation
067800e to
03b098b
Compare
dmohns
left a comment
There was a problem hiding this comment.
Looks great. Leaving a few comments here.
- Can you explain what is the exact purpose of
MovitelTransactionParserandVodacomTransactionParser? For example, they simply get converted to Regex? - Is there a way, for each rule, to see the last X (maybe 15) messages that matched the filter? And, if they succesfully parsed?
| $parserClass = self::PARSER_MAP[$rule->provider_name] | ||
| ?? self::PARSER_MAP[ucfirst(explode('_', $rule->provider_name, 2)[0])] | ||
| ?? null; |
There was a problem hiding this comment.
This part is essentially blocking users from adding any custom Parsing rules.
I'm trying to add a new Parsing Rule, but it only works if I use Vodacom or Movitel as a name.
There was a problem hiding this comment.
This has been updated.
| use App\Plugins\SmsTransactionParser\SmsParsing\Contracts\ISmsTransactionParser; | ||
| use App\Plugins\SmsTransactionParser\SmsParsing\ParsedSmsData; | ||
|
|
||
| class MovitelTransactionParser implements ISmsTransactionParser { |
There was a problem hiding this comment.
Could we make them specific to MZ?
There was a problem hiding this comment.
We no longer use this.
Originally the separation of However, with all the parsing rules having the same variables i.e txn ref, account, phone etc. I have now consolidated this into a single deserialization abstraction
I think we can already get this information from the |
Makes progress on #1345
#1351 should be merged before this.
Brief summary of the change made
This PR expands on the bi-directional sms communication feature. With these changes we are creating use-case to support recording transactions from Mobile money providers through sms receipts.
MPM uses the sms gateway to obtain the receipts and does sms parsing using a flexible Parsing rule configured by the user as a plugin.
Are there any other side effects of this change that we should be aware of?
Describe how you tested your changes?
Pull Request checklist
Please confirm you have completed any of the necessary steps below.