mirror of https://gitlab.com/litecord/litecord.git
Fixed invites
This commit is contained in:
parent
edf1ed9a3d
commit
51180d5e05
|
|
@ -48,6 +48,8 @@ class UnknownInvite(BadRequest):
|
||||||
class InvalidInvite(Forbidden):
|
class InvalidInvite(Forbidden):
|
||||||
error_code = 50020
|
error_code = 50020
|
||||||
|
|
||||||
|
class AlreadyInvited(BaseException):
|
||||||
|
pass
|
||||||
|
|
||||||
def gen_inv_code() -> str:
|
def gen_inv_code() -> str:
|
||||||
"""Generate an invite code.
|
"""Generate an invite code.
|
||||||
|
|
@ -70,7 +72,7 @@ async def invite_precheck(user_id: int, guild_id: int):
|
||||||
""", user_id, guild_id)
|
""", user_id, guild_id)
|
||||||
|
|
||||||
if joined is not None:
|
if joined is not None:
|
||||||
raise BadRequest('You are already in the guild')
|
raise AlreadyInvited('You are already in the guild')
|
||||||
|
|
||||||
banned = await app.db.fetchval("""
|
banned = await app.db.fetchval("""
|
||||||
SELECT reason
|
SELECT reason
|
||||||
|
|
@ -87,7 +89,7 @@ async def invite_precheck_gdm(user_id: int, channel_id: int):
|
||||||
is_member = await gdm_is_member(channel_id, user_id)
|
is_member = await gdm_is_member(channel_id, user_id)
|
||||||
|
|
||||||
if is_member:
|
if is_member:
|
||||||
raise BadRequest('You are already in the Group DM')
|
raise AlreadyInvited('You are already in the Group DM')
|
||||||
|
|
||||||
|
|
||||||
async def _inv_check_age(inv: dict):
|
async def _inv_check_age(inv: dict):
|
||||||
|
|
@ -171,6 +173,7 @@ async def use_invite(user_id, invite_code):
|
||||||
# NOTE: if group dm invite, guild_id is null.
|
# NOTE: if group dm invite, guild_id is null.
|
||||||
guild_id = inv['guild_id']
|
guild_id = inv['guild_id']
|
||||||
|
|
||||||
|
try:
|
||||||
if guild_id is None:
|
if guild_id is None:
|
||||||
channel_id = inv['channel_id']
|
channel_id = inv['channel_id']
|
||||||
await invite_precheck_gdm(user_id, inv['channel_id'])
|
await invite_precheck_gdm(user_id, inv['channel_id'])
|
||||||
|
|
@ -184,7 +187,8 @@ async def use_invite(user_id, invite_code):
|
||||||
SET uses = uses + 1
|
SET uses = uses + 1
|
||||||
WHERE code = $1
|
WHERE code = $1
|
||||||
""", invite_code)
|
""", invite_code)
|
||||||
|
except AlreadyInvited:
|
||||||
|
pass
|
||||||
|
|
||||||
@bp.route('/channels/<int:channel_id>/invites', methods=['POST'])
|
@bp.route('/channels/<int:channel_id>/invites', methods=['POST'])
|
||||||
async def create_invite(channel_id):
|
async def create_invite(channel_id):
|
||||||
|
|
@ -323,6 +327,7 @@ async def get_channel_invites(channel_id: int):
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/invite/<invite_code>', methods=['POST'])
|
@bp.route('/invite/<invite_code>', methods=['POST'])
|
||||||
|
@bp.route('/invites/<invite_code>', methods=['POST'])
|
||||||
async def _use_invite(invite_code):
|
async def _use_invite(invite_code):
|
||||||
"""Use an invite."""
|
"""Use an invite."""
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue