试图弄清楚这是否可行,但我正在从事一个SaaS交流项目,该项目允许客户将文本消息发送给联系人。这些联系人可以根据需要进行回复,以提供双向通讯。
问题是在电话api中设置了特定的回调URL,这将需要正确路由传入的文本请求。每个客户都有自己的电话号码,所以我希望能够接收路由中的传入请求,在所有租户数据库中搜索电话设置表,如果找到,则继续保存文本消息以正确地继续请求,查找在创建的任何自动回复设置中,将文本转发到另一个号码,等等。所有这些都针对每个租户。
是否可以在路由/控制器中的所有租户数据库中进行搜索,然后将响应正确转发到该租户的数据库?
如果不是这样,或者它比较干净,是否可以代替连接到主/核心租户,并搜索电话号码和主机名的主表,然后以这种方式将请求重定向到合适的租户?如果是这样,我将需要能够连接master数据库,以便在每个客户端进行更改时存储和更新每个客户端的电话号码。
我可以通过在主机名表中添加电话号码,在此处查找匹配项并重置与该租户的当前连接来解决此问题。
$hostname = DB::table('hostnames')->select('*')->where('phone_number', $request->To)->first();
if($hostname->fqdn != 'defaultdomain.com'){
$dbname = DB::table('websites')->select('uuid')->where('id', $hostname->website_id)->first();
Config::set("database.connections.tenant", [
"driver" => 'mysql',
"host" => 'localhost',
"database" => $dbname->uuid,
"username" => env('DB_USERNAME'),
"password" => env('DB_PASSWORD')
]);
Config::set('database.default', 'tenant');
DB::purge('tenant');
DB::reconnect('tenant');
}
//Continue with contact info and storing phone logs
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句