@@ -36,9 +36,9 @@ def parse_body(body: str, content_type: Optional[str]) -> Dict[str, Any]:
3636 ) or body .startswith ("{" ):
3737 return json .loads (body )
3838 else :
39- if "payload" in body :
39+ if "payload" in body : # This is not JSON format yet
4040 params = dict (parse_qsl (body ))
41- if "payload" in params :
41+ if params . get ( "payload" ) is not None :
4242 return json .loads (params .get ("payload" ))
4343 else :
4444 return {}
@@ -56,72 +56,72 @@ def extract_is_enterprise_install(payload: Dict[str, Any]) -> Optional[bool]:
5656
5757
5858def extract_enterprise_id (payload : Dict [str , Any ]) -> Optional [str ]:
59- if "enterprise" in payload :
59+ if payload . get ( "enterprise" ) is not None :
6060 org = payload .get ("enterprise" )
6161 if isinstance (org , str ):
6262 return org
6363 elif "id" in org :
6464 return org .get ("id" ) # type: ignore
65- if "authorizations" in payload and len (payload ["authorizations" ]) > 0 :
65+ if payload . get ( "authorizations" ) is not None and len (payload ["authorizations" ]) > 0 :
6666 # To make Events API handling functioning also for shared channels,
6767 # we should use .authorizations[0].enterprise_id over .enterprise_id
6868 return extract_enterprise_id (payload ["authorizations" ][0 ])
6969 if "enterprise_id" in payload :
7070 return payload .get ("enterprise_id" )
71- if "team" in payload and "enterprise_id" in payload ["team" ]:
71+ if payload . get ( "team" ) is not None and "enterprise_id" in payload ["team" ]:
7272 # In the case where the type is view_submission
7373 return payload ["team" ].get ("enterprise_id" )
74- if "event" in payload :
74+ if payload . get ( "event" ) is not None :
7575 return extract_enterprise_id (payload ["event" ])
7676 return None
7777
7878
7979def extract_team_id (payload : Dict [str , Any ]) -> Optional [str ]:
80- if "team" in payload :
80+ if payload . get ( "team" ) is not None :
8181 team = payload .get ("team" )
8282 if isinstance (team , str ):
8383 return team
8484 elif team and "id" in team :
8585 return team .get ("id" )
86- if "authorizations" in payload and len (payload ["authorizations" ]) > 0 :
86+ if payload . get ( "authorizations" ) is not None and len (payload ["authorizations" ]) > 0 :
8787 # To make Events API handling functioning also for shared channels,
8888 # we should use .authorizations[0].team_id over .team_id
8989 return extract_team_id (payload ["authorizations" ][0 ])
9090 if "team_id" in payload :
9191 return payload .get ("team_id" )
92- if "event" in payload :
92+ if payload . get ( "event" ) is not None :
9393 return extract_team_id (payload ["event" ])
94- if "user" in payload :
94+ if payload . get ( "user" ) is not None :
9595 return payload .get ("user" )["team_id" ]
9696 return None
9797
9898
9999def extract_user_id (payload : Dict [str , Any ]) -> Optional [str ]:
100- if "user" in payload :
100+ if payload . get ( "user" ) is not None :
101101 user = payload .get ("user" )
102102 if isinstance (user , str ):
103103 return user
104104 elif "id" in user :
105105 return user .get ("id" ) # type: ignore
106106 if "user_id" in payload :
107107 return payload .get ("user_id" )
108- if "event" in payload :
108+ if payload . get ( "event" ) is not None :
109109 return extract_user_id (payload ["event" ])
110110 return None
111111
112112
113113def extract_channel_id (payload : Dict [str , Any ]) -> Optional [str ]:
114- if "channel" in payload :
114+ if payload . get ( "channel" ) is not None :
115115 channel = payload .get ("channel" )
116116 if isinstance (channel , str ):
117117 return channel
118118 elif "id" in channel :
119119 return channel .get ("id" ) # type: ignore
120120 if "channel_id" in payload :
121121 return payload .get ("channel_id" )
122- if "event" in payload :
122+ if payload . get ( "event" ) is not None :
123123 return extract_channel_id (payload ["event" ])
124- if "item" in payload :
124+ if payload . get ( "item" ) is not None :
125125 # reaction_added: body["event"]["item"]
126126 return extract_channel_id (payload ["item" ])
127127 return None
0 commit comments