mirror of https://gitlab.com/litecord/litecord.git
blueprints.channels: add route to delete read_state of a channel
- blueprints.checks: change return type from snowflake to (ChannelType,
snowflake)
This commit is contained in:
parent
b7f0bd1bb4
commit
5372292f0d
|
|
@ -141,7 +141,7 @@ async def close_channel(channel_id):
|
||||||
ctype = ChannelType(chan_type)
|
ctype = ChannelType(chan_type)
|
||||||
|
|
||||||
if ctype in GUILD_CHANS:
|
if ctype in GUILD_CHANS:
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_, guild_id = await channel_check(user_id, channel_id)
|
||||||
chan = await app.storage.get_channel(channel_id)
|
chan = await app.storage.get_channel(channel_id)
|
||||||
|
|
||||||
# the selected function will take care of checking
|
# the selected function will take care of checking
|
||||||
|
|
@ -256,7 +256,7 @@ async def get_single_message(channel_id, message_id):
|
||||||
@bp.route('/<int:channel_id>/messages', methods=['POST'])
|
@bp.route('/<int:channel_id>/messages', methods=['POST'])
|
||||||
async def create_message(channel_id):
|
async def create_message(channel_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
j = validate(await request.get_json(), MESSAGE_CREATE)
|
j = validate(await request.get_json(), MESSAGE_CREATE)
|
||||||
message_id = get_snowflake()
|
message_id = get_snowflake()
|
||||||
|
|
@ -304,7 +304,7 @@ async def create_message(channel_id):
|
||||||
@bp.route('/<int:channel_id>/messages/<int:message_id>', methods=['PATCH'])
|
@bp.route('/<int:channel_id>/messages/<int:message_id>', methods=['PATCH'])
|
||||||
async def edit_message(channel_id, message_id):
|
async def edit_message(channel_id, message_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
author_id = await app.db.fetchval("""
|
author_id = await app.db.fetchval("""
|
||||||
SELECT author_id FROM messages
|
SELECT author_id FROM messages
|
||||||
|
|
@ -339,7 +339,7 @@ async def edit_message(channel_id, message_id):
|
||||||
@bp.route('/<int:channel_id>/messages/<int:message_id>', methods=['DELETE'])
|
@bp.route('/<int:channel_id>/messages/<int:message_id>', methods=['DELETE'])
|
||||||
async def delete_message(channel_id, message_id):
|
async def delete_message(channel_id, message_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
author_id = await app.db.fetchval("""
|
author_id = await app.db.fetchval("""
|
||||||
SELECT author_id FROM messages
|
SELECT author_id FROM messages
|
||||||
|
|
@ -392,7 +392,7 @@ async def get_pins(channel_id):
|
||||||
@bp.route('/<int:channel_id>/pins/<int:message_id>', methods=['PUT'])
|
@bp.route('/<int:channel_id>/pins/<int:message_id>', methods=['PUT'])
|
||||||
async def add_pin(channel_id, message_id):
|
async def add_pin(channel_id, message_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
# TODO: check MANAGE_MESSAGES permission
|
# TODO: check MANAGE_MESSAGES permission
|
||||||
|
|
||||||
|
|
@ -422,7 +422,7 @@ async def add_pin(channel_id, message_id):
|
||||||
@bp.route('/<int:channel_id>/pins/<int:message_id>', methods=['DELETE'])
|
@bp.route('/<int:channel_id>/pins/<int:message_id>', methods=['DELETE'])
|
||||||
async def delete_pin(channel_id, message_id):
|
async def delete_pin(channel_id, message_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
# TODO: check MANAGE_MESSAGES permission
|
# TODO: check MANAGE_MESSAGES permission
|
||||||
|
|
||||||
|
|
@ -453,7 +453,7 @@ async def delete_pin(channel_id, message_id):
|
||||||
@bp.route('/<int:channel_id>/typing', methods=['POST'])
|
@bp.route('/<int:channel_id>/typing', methods=['POST'])
|
||||||
async def trigger_typing(channel_id):
|
async def trigger_typing(channel_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
# TODO: dispatch_channel
|
# TODO: dispatch_channel
|
||||||
await app.dispatcher.dispatch_guild(guild_id, 'TYPING_START', {
|
await app.dispatcher.dispatch_guild(guild_id, 'TYPING_START', {
|
||||||
|
|
@ -508,7 +508,10 @@ async def channel_ack(user_id, guild_id, channel_id, message_id: int = None):
|
||||||
@bp.route('/<int:channel_id>/messages/<int:message_id>/ack', methods=['POST'])
|
@bp.route('/<int:channel_id>/messages/<int:message_id>/ack', methods=['POST'])
|
||||||
async def ack_channel(channel_id, message_id):
|
async def ack_channel(channel_id, message_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
|
if ctype == ChannelType.DM:
|
||||||
|
guild_id = None
|
||||||
|
|
||||||
await channel_ack(user_id, guild_id, channel_id, message_id)
|
await channel_ack(user_id, guild_id, channel_id, message_id)
|
||||||
|
|
||||||
|
|
@ -518,3 +521,16 @@ async def ack_channel(channel_id, message_id):
|
||||||
# so we never use it.
|
# so we never use it.
|
||||||
'token': None
|
'token': None
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route('/<int:channel_id>/messages/ack', methods=['DELETE'])
|
||||||
|
async def delete_read_state(channel_id):
|
||||||
|
user_id = await token_check()
|
||||||
|
await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
|
await app.db.execute("""
|
||||||
|
DELETE FROM user_read_state
|
||||||
|
WHERE user_id = $1 AND channel_id = $2
|
||||||
|
""", user_id, channel_id)
|
||||||
|
|
||||||
|
return '', 204
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ async def channel_check(user_id, channel_id):
|
||||||
""", channel_id)
|
""", channel_id)
|
||||||
|
|
||||||
await guild_check(user_id, guild_id)
|
await guild_check(user_id, guild_id)
|
||||||
return guild_id
|
return ctype, guild_id
|
||||||
|
|
||||||
if ctype == ChannelType.DM:
|
if ctype == ChannelType.DM:
|
||||||
parties = await app.db.fetchrow("""
|
parties = await app.db.fetchrow("""
|
||||||
|
|
@ -47,4 +47,4 @@ async def channel_check(user_id, channel_id):
|
||||||
|
|
||||||
# get the id of the other party
|
# get the id of the other party
|
||||||
parties.remove(user_id)
|
parties.remove(user_id)
|
||||||
return parties[0]
|
return ctype, parties[0]
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ from ..enums import ChannelType
|
||||||
from ..errors import Forbidden, GuildNotFound, BadRequest
|
from ..errors import Forbidden, GuildNotFound, BadRequest
|
||||||
from ..schemas import validate, GUILD_UPDATE
|
from ..schemas import validate, GUILD_UPDATE
|
||||||
from .channels import channel_ack
|
from .channels import channel_ack
|
||||||
from .checks import guild_check, channel_check
|
from .checks import guild_check
|
||||||
|
|
||||||
bp = Blueprint('guilds', __name__)
|
bp = Blueprint('guilds', __name__)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ async def create_invite(channel_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
|
|
||||||
j = validate(await request.get_json(), INVITE)
|
j = validate(await request.get_json(), INVITE)
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
# TODO: check CREATE_INSTANT_INVITE permission
|
# TODO: check CREATE_INSTANT_INVITE permission
|
||||||
|
|
||||||
|
|
@ -125,7 +125,7 @@ async def get_guild_invites(guild_id: int):
|
||||||
@bp.route('/channels/<int:channel_id>/invites', methods=['GET'])
|
@bp.route('/channels/<int:channel_id>/invites', methods=['GET'])
|
||||||
async def get_channel_invites(channel_id: int):
|
async def get_channel_invites(channel_id: int):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
guild_id = await channel_check(user_id, channel_id)
|
_ctype, guild_id = await channel_check(user_id, channel_id)
|
||||||
|
|
||||||
inv_codes = await app.db.fetch("""
|
inv_codes = await app.db.fetch("""
|
||||||
SELECT code
|
SELECT code
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue