Battle-Cattle/BCUK-Bot-3

View on GitHub
src/main/java/com/expiredminotaur/bcukbot/rest/BCUKRestController.java

Summary

Maintainability
A
0 mins
Test Coverage
package com.expiredminotaur.bcukbot.rest;

import com.expiredminotaur.bcukbot.discord.DiscordBot;
import com.expiredminotaur.bcukbot.discord.music.MusicHandler;
import com.expiredminotaur.bcukbot.discord.music.SFXHandler;
import discord4j.core.object.entity.channel.VoiceChannel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class BCUKRestController
{
    @Autowired
    SFXHandler sfxHandler;

    @Autowired
    DiscordBot discordBot;

    @Autowired
    MusicHandler musicHandler;

    @PostMapping("/playsfx")
    void playSFX(@RequestBody SfxRequest request)
    {
        sfxHandler.play(request.getSfx(), true);
    }

    @PostMapping("/join")
    void join(@RequestBody JoinRequest request)
    {
        discordBot.getChannel(request.getChannelId())
                .filter(c -> c instanceof VoiceChannel)
                .cast(VoiceChannel.class)
                .flatMap(c -> musicHandler.joinChannel(c)).subscribe();
    }

    @PostMapping("/leave")
    void leave()
    {
        musicHandler.leaveChannel();
    }
}