Added more functionality for admins

This commit is contained in:
Isaac Parenteau
2019-12-30 20:22:20 -06:00
parent 75c3892e61
commit fd3c942164
8 changed files with 268 additions and 10 deletions

View File

@@ -0,0 +1,137 @@
/**
*
* Project: Eight Track, File: GuildSongRepoService.java
*
* Copyright 2019-2019 Locusworks LLC.
* All rights reserved. Federal copyright law prohibits unauthorized reproduction by
* any means and imposes fines up to $25,000 for violation. No part of this material
* may be reproduced, transmitted, transcribed, stored in a retrieval system, copied,
* modified, duplicated, adapted or translated into another program language in any
* form or by any means, electronic, mechanical, photocopying, recording, or
* otherwise, without the prior written permission from Locusworks. Locusworks
* affirms that Eight-Track(R) software and data is subject to United States
* Government Purpose Rights. Contact Locusworks, 1313 Lawnview Drive
* Forney TX 75126, (802) 488-0438, for commercial licensing opportunities.
*
* IN NO EVENT SHALL LOCUSWORKS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
* INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF LOCUSWORKS HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NO RESPONSIBILITY IS ASSUMED BY
* LOCUSWORKS FOR ITS USE, OR FOR ANY INFRINGEMENTS OF PATENTS OR OTHER RIGHTS OF
* THIRD PARTIES RESULTING FROM ITS USE. LOCUSWORKS SPECIFICALLY DISCLAIMS ANY
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND
* ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
* IS". LOCUSWORKS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
* ENHANCEMENTS, OR MODIFICATIONS.
*/
package net.locusworks.discord.eighttrack.services;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import net.locusworks.discord.eighttrack.database.entities.DiscordGuild;
import net.locusworks.discord.eighttrack.database.entities.Log;
import net.locusworks.discord.eighttrack.database.repos.GuildLogRepository;
import net.locusworks.discord.eighttrack.database.repos.GuildPlaylistRepository;
import net.locusworks.discord.eighttrack.database.repos.GuildPlaylistSongRepository;
import net.locusworks.discord.eighttrack.database.repos.GuildRepository;
import net.locusworks.discord.eighttrack.database.repos.GuildSongRepository;
import net.locusworks.discord.eighttrack.database.repos.SongRepository;
@Service
public class RepositoryService {
@Autowired
private GuildRepository guildRepo;
@Autowired
private GuildSongRepository guildSongRepo;
@Autowired
private GuildPlaylistRepository guildPlaylistRepo;
@Autowired
private GuildPlaylistSongRepository guildPlaylistSongRepo;
@Autowired
private SongRepository songRepo;
@Autowired
private GuildLogRepository guildLogRepo;
public void logEntry(long guildId, String msg) {
logEntry(guildId, null, "%s", new Object[] {msg});
}
public void logEntry(long guildId, String msgFmt, Object... args) {
logEntry(guildId, null, msgFmt, args);
}
public void logEntry(long guildId, Throwable ex, String msgFmt, Object... args) {
DiscordGuild dg = guildRepo.findByGuildId(guildId);
if (dg == null) return;
String msg = String.format(msgFmt, args);
if (ex != null) {
msg += "\n" + printTrace(ex);
}
Log log = new Log();
log.setDateAdded(new Date());
log.setGuild(dg);
log.setIsException(ex != null);
log.setLog(msg);
guildLogRepo.save(log);
}
private String printTrace(Throwable ex) {
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
return sw.toString();
}
/**
* @return the guildRepo
*/
public final GuildRepository getGuildRepo() {
return guildRepo;
}
/**
* @return the guildSongRepo
*/
public final GuildSongRepository getGuildSongRepo() {
return guildSongRepo;
}
/**
* @return the guildPlaylistRepo
*/
public final GuildPlaylistRepository getGuildPlaylistRepo() {
return guildPlaylistRepo;
}
/**
* @return the guildPlaylistSongRepo
*/
public final GuildPlaylistSongRepository getGuildPlaylistSongRepo() {
return guildPlaylistSongRepo;
}
/**
* @return the songRepo
*/
public final SongRepository getSongRepo() {
return songRepo;
}
public final GuildLogRepository getGuildLogRepo() {
return guildLogRepo;
}
}