Added broadcast endpoint
This commit is contained in:
parent
cbd2b2a60a
commit
ee02452dd5
@ -1,6 +1,6 @@
|
||||
from django.urls import path
|
||||
|
||||
from .views import RCONServersAPI, RCONServerDetailAPI, ListPlayers, WhitelistAPI
|
||||
from .views import RCONServersAPI, RCONServerDetailAPI, ListPlayers, WhitelistAPI, BroadcastAPI
|
||||
|
||||
app_name = "rcon_api"
|
||||
urlpatterns = [
|
||||
@ -8,4 +8,5 @@ urlpatterns = [
|
||||
path("<str:guild_id>/<str:name>/", view=RCONServerDetailAPI.as_view(), name="server_detail"),
|
||||
path("<str:guild_id>/<str:name>/listplayers/", view=ListPlayers.as_view(), name='listplayers'),
|
||||
path("<str:guild_id>/<str:name>/whitelist/", view=WhitelistAPI.as_view(), name='whitelist'),
|
||||
path("<str:guild_id>/<str:name>/broadcast/", view=BroadcastAPI.as_view(), name='broadcast'),
|
||||
]
|
||||
|
||||
@ -96,3 +96,24 @@ class WhitelistAPI(APIView):
|
||||
status=status.HTTP_408_REQUEST_TIMEOUT)
|
||||
resp = ark.whitelist(user.steam_id)
|
||||
return create_rcon_response(resp, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
class BroadcastAPI(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request, guild_id, name, format=None):
|
||||
message = request.data.get('message')
|
||||
if not message:
|
||||
return create_error_response('A message is required',
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
server: RconServer = RconServer.get_server(guild_id, name)
|
||||
if not server:
|
||||
return create_error_response('RCON Server Does Not Exist',
|
||||
status=status.HTTP_404_NOT_FOUND)
|
||||
ark = arcon.ARKServer(host=server.ip, port=server.port, password=server.password)
|
||||
connected = ark.connect()
|
||||
if not connected == 1:
|
||||
return create_error_response('Connection Failure',
|
||||
status=status.HTTP_408_REQUEST_TIMEOUT)
|
||||
resp = ark.broadcast(message)
|
||||
return create_rcon_response(resp, status=status.HTTP_200_OK)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user