🔨 Add setting description endpoint
This commit is contained in:
parent
3f5225bef1
commit
2cd22ab2db
@ -0,0 +1,26 @@
|
|||||||
|
package net.Broken.Api.Controllers;
|
||||||
|
|
||||||
|
import net.Broken.Api.Data.Settings.SettingGroup;
|
||||||
|
import net.Broken.Api.Services.SettingService;
|
||||||
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/v2/setting")
|
||||||
|
@CrossOrigin(origins = "*", maxAge = 3600)
|
||||||
|
public class SettingController {
|
||||||
|
public final SettingService settingService;
|
||||||
|
|
||||||
|
public SettingController(SettingService settingService) {
|
||||||
|
this.settingService = settingService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("description")
|
||||||
|
public List<SettingGroup> getSettingDescription(){
|
||||||
|
return settingService.getSettingDescription();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package net.Broken.Api.Data.Settings;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
public record SettingDescriber(
|
||||||
|
String id,
|
||||||
|
String name,
|
||||||
|
String description,
|
||||||
|
TYPE type
|
||||||
|
) {
|
||||||
|
|
||||||
|
public enum TYPE {
|
||||||
|
BOOL, LIST, STRING, ROLE, TEXT_CHANNEL, VOICE_CHANNEL
|
||||||
|
}
|
||||||
|
}
|
13
src/main/java/net/Broken/Api/Data/Settings/SettingGroup.java
Normal file
13
src/main/java/net/Broken/Api/Data/Settings/SettingGroup.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package net.Broken.Api.Data.Settings;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||||
|
public record SettingGroup(
|
||||||
|
String name,
|
||||||
|
SettingDescriber mainField,
|
||||||
|
List<SettingDescriber> fields
|
||||||
|
) {
|
||||||
|
}
|
115
src/main/java/net/Broken/Api/Services/SettingService.java
Normal file
115
src/main/java/net/Broken/Api/Services/SettingService.java
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
package net.Broken.Api.Services;
|
||||||
|
|
||||||
|
import net.Broken.Api.Data.Settings.SettingDescriber;
|
||||||
|
import net.Broken.Api.Data.Settings.SettingGroup;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SettingService {
|
||||||
|
|
||||||
|
public List<SettingGroup> getSettingDescription() {
|
||||||
|
List<SettingGroup> toReturn = new ArrayList<>();
|
||||||
|
toReturn.add(getWelcomeGroup());
|
||||||
|
toReturn.add(getDefaultRoleGroup());
|
||||||
|
toReturn.add(getDailyGroup());
|
||||||
|
toReturn.add(getAutoVoiceChannelGroup());
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SettingGroup getWelcomeGroup() {
|
||||||
|
SettingDescriber mainField = new SettingDescriber(
|
||||||
|
"welcome_enable",
|
||||||
|
"Enable Welcome Message",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.BOOL
|
||||||
|
);
|
||||||
|
|
||||||
|
List<SettingDescriber> fields = new ArrayList<>();
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"welcome_chanel_id",
|
||||||
|
"Welcome Message chanel",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.TEXT_CHANNEL
|
||||||
|
));
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"welcome_message",
|
||||||
|
"Welcome Message",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.STRING
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
|
return new SettingGroup(
|
||||||
|
"Welcome Message",
|
||||||
|
mainField,
|
||||||
|
fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SettingGroup getDefaultRoleGroup() {
|
||||||
|
SettingDescriber mainField = new SettingDescriber(
|
||||||
|
"default_role",
|
||||||
|
"Enable Default Role",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.BOOL
|
||||||
|
);
|
||||||
|
|
||||||
|
List<SettingDescriber> fields = new ArrayList<>();
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"default_role_id",
|
||||||
|
"Default Role",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.ROLE
|
||||||
|
));
|
||||||
|
|
||||||
|
return new SettingGroup(
|
||||||
|
"Default Role",
|
||||||
|
mainField,
|
||||||
|
fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SettingGroup getDailyGroup() {
|
||||||
|
List<SettingDescriber> fields = new ArrayList<>();
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"daily_madame",
|
||||||
|
"[NSFW] Enable Daily Madame Message",
|
||||||
|
null,
|
||||||
|
SettingDescriber.TYPE.BOOL
|
||||||
|
));
|
||||||
|
|
||||||
|
return new SettingGroup(
|
||||||
|
"Daily",
|
||||||
|
null,
|
||||||
|
fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SettingGroup getAutoVoiceChannelGroup() {
|
||||||
|
SettingDescriber mainField = new SettingDescriber(
|
||||||
|
"auto_voice",
|
||||||
|
"Enable Auto Create Voice Chanel",
|
||||||
|
"Auto create voice channel on join.",
|
||||||
|
SettingDescriber.TYPE.BOOL
|
||||||
|
);
|
||||||
|
|
||||||
|
List<SettingDescriber> fields = new ArrayList<>();
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"auto_voice_base_channel",
|
||||||
|
"Base Voice Channel For Auto Create",
|
||||||
|
"If someone joint this channel, a new voice channel will be created with the same settings.",
|
||||||
|
SettingDescriber.TYPE.VOICE_CHANNEL
|
||||||
|
));
|
||||||
|
fields.add(new SettingDescriber(
|
||||||
|
"auto_voice_channel_title",
|
||||||
|
"Auto Created Voice Channel title",
|
||||||
|
"Auto created voice channel will use this title, @count will be replaced by the channel count.",
|
||||||
|
SettingDescriber.TYPE.VOICE_CHANNEL
|
||||||
|
));
|
||||||
|
|
||||||
|
return new SettingGroup(
|
||||||
|
"Auto Voice Channel",
|
||||||
|
mainField,
|
||||||
|
fields);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user