Feedback rating

This commit is contained in:
rxdn 2021-07-28 14:51:37 +01:00
parent 9be5f7154d
commit a8dfbb413e
8 changed files with 41 additions and 20 deletions

View File

@ -18,6 +18,7 @@ type Settings struct {
PingEveryone bool `json:"ping_everyone"` PingEveryone bool `json:"ping_everyone"`
UsersCanClose bool `json:"users_can_close"` UsersCanClose bool `json:"users_can_close"`
CloseConfirmation bool `json:"close_confirmation"` CloseConfirmation bool `json:"close_confirmation"`
FeedbackEnabled bool `json:"feedback_enabled"`
} }
func GetSettingsHandler(ctx *gin.Context) { func GetSettingsHandler(ctx *gin.Context) {
@ -93,6 +94,12 @@ func GetSettingsHandler(ctx *gin.Context) {
return return
}) })
// close confirmation
group.Go(func() (err error) {
settings.FeedbackEnabled, err = dbclient.Client.FeedbackEnabled.Get(guildId)
return
})
if err := group.Wait(); err != nil { if err := group.Wait(); err != nil {
ctx.AbortWithStatusJSON(500, gin.H{ ctx.AbortWithStatusJSON(500, gin.H{
"success": false, "success": false,

View File

@ -23,7 +23,7 @@ func UpdateSettingsHandler(ctx *gin.Context) {
// Get a list of all channel IDs // Get a list of all channel IDs
channels := cache.Instance.GetGuildChannels(guildId) channels := cache.Instance.GetGuildChannels(guildId)
// Get prefix // TODO: Errors
validPrefix := settings.updatePrefix(guildId) validPrefix := settings.updatePrefix(guildId)
validWelcomeMessage := settings.updateWelcomeMessage(guildId) validWelcomeMessage := settings.updateWelcomeMessage(guildId)
validTicketLimit := settings.updateTicketLimit(guildId) validTicketLimit := settings.updateTicketLimit(guildId)
@ -33,6 +33,7 @@ func UpdateSettingsHandler(ctx *gin.Context) {
settings.updatePingEveryone(guildId) settings.updatePingEveryone(guildId)
settings.updateUsersCanClose(guildId) settings.updateUsersCanClose(guildId)
settings.updateCloseConfirmation(guildId) settings.updateCloseConfirmation(guildId)
settings.updateFeedbackEnabled(guildId)
ctx.JSON(200, gin.H{ ctx.JSON(200, gin.H{
"prefix": validPrefix, "prefix": validPrefix,
@ -135,3 +136,8 @@ func (s *Settings) updateUsersCanClose(guildId uint64) {
func (s *Settings) updateCloseConfirmation(guildId uint64) { func (s *Settings) updateCloseConfirmation(guildId uint64) {
go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation) go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation)
} }
func (s *Settings) updateFeedbackEnabled(guildId uint64) {
go dbclient.Client.FeedbackEnabled.Set(guildId, s.FeedbackEnabled)
}

View File

@ -51,12 +51,17 @@ func main() {
messagequeue.Client = messagequeue.NewRedisClient() messagequeue.Client = messagequeue.NewRedisClient()
go ListenChat(messagequeue.Client) go ListenChat(messagequeue.Client)
rpc.PremiumClient = premium.NewPremiumLookupClient( if !config.Conf.Debug {
premium.NewPatreonClient(config.Conf.Bot.PremiumLookupProxyUrl, config.Conf.Bot.PremiumLookupProxyKey), rpc.PremiumClient = premium.NewPremiumLookupClient(
messagequeue.Client.Client, premium.NewPatreonClient(config.Conf.Bot.PremiumLookupProxyUrl, config.Conf.Bot.PremiumLookupProxyKey),
cache.Instance.PgCache, messagequeue.Client.Client,
database.Client, cache.Instance.PgCache,
) database.Client,
)
} else {
c := premium.NewMockLookupClient(premium.Whitelabel, premium.SourcePatreon)
rpc.PremiumClient = &c
}
http.StartServer() http.StartServer()
} }

View File

@ -12,6 +12,7 @@ type (
Config struct { Config struct {
Admins []uint64 Admins []uint64
ForceWhitelabel []uint64 ForceWhitelabel []uint64
Debug bool
Server Server Server Server
Oauth Oauth Oauth Oauth
Database Database Database Database
@ -122,6 +123,7 @@ func fromEnvvar() {
Conf = Config{ Conf = Config{
Admins: admins, Admins: admins,
ForceWhitelabel: forcedWhitelabel, ForceWhitelabel: forcedWhitelabel,
Debug: os.Getenv("DEBUG") != "",
Server: Server{ Server: Server{
Host: os.Getenv("SERVER_ADDR"), Host: os.Getenv("SERVER_ADDR"),
BaseUrl: os.Getenv("BASE_URL"), BaseUrl: os.Getenv("BASE_URL"),

View File

@ -6,22 +6,24 @@
<div slot="body" class="body-wrapper"> <div slot="body" class="body-wrapper">
<form class="settings-form" on:submit|preventDefault={updateSettings}> <form class="settings-form" on:submit|preventDefault={updateSettings}>
<div class="row"> <div class="row">
<Input label="prefix (max len. 8)" placeholder="t!" col4=true bind:value={data.prefix} /> <Input label="prefix (max len. 8)" placeholder="t!" col4=true bind:value={data.prefix}/>
<Number label="per user ticket limit" col4=true min=1 max=10 bind:value={data.ticket_limit} /> <Number label="per user ticket limit" col4=true min=1 max=10 bind:value={data.ticket_limit}/>
<Checkbox label="allow users to close tickets" col4=true bind:value={data.users_can_close}/> <Checkbox label="allow users to close tickets" col4=true bind:value={data.users_can_close}/>
<Checkbox label="ticket close confirmation" col4=true bind:value={data.close_confirmation}/> <Checkbox label="ticket close confirmation" col4=true bind:value={data.close_confirmation}/>
</div> </div>
<div class="row"> <div class="row">
<Textarea label="welcome message" placeholder="Thanks for opening a ticket!" col1=true bind:value={data.welcome_message} /> <Textarea label="welcome message" placeholder="Thanks for opening a ticket!" col1=true
bind:value={data.welcome_message}/>
</div> </div>
<div class="row"> <div class="row">
<ChannelDropdown label="Archive Channel" col2=true channels={channels} bind:value={data.archive_channel} /> <ChannelDropdown label="Archive Channel" col2=true channels={channels} bind:value={data.archive_channel}/>
<CategoryDropdown label="Channel Category" col2=true channels={channels} bind:value={data.category} /> <CategoryDropdown label="Channel Category" col2=true channels={channels} bind:value={data.category}/>
</div> </div>
<div class="row"> <div class="row">
<NamingScheme col4=true bind:value={data.naming_scheme} /> <NamingScheme col4=true bind:value={data.naming_scheme}/>
<Checkbox label="Ask Users To Rate Service" col4=true bind:value={data.feedback_enabled}/>
</div> </div>
<div class="row"> <div class="row" style="justify-content: flex-start">
<div class="col-1"> <div class="col-1">
<Button icon="fas fa-paper-plane" fullWidth=true>Submit</Button> <Button icon="fas fa-paper-plane" fullWidth=true>Submit</Button>
</div> </div>
@ -32,9 +34,6 @@
<script> <script>
import ChannelDropdown from "../ChannelDropdown.svelte"; import ChannelDropdown from "../ChannelDropdown.svelte";
export let guildId;
import Card from "../Card.svelte"; import Card from "../Card.svelte";
import Input from "../form/Input.svelte"; import Input from "../form/Input.svelte";
import Number from "../form/Number.svelte"; import Number from "../form/Number.svelte";
@ -49,6 +48,8 @@
import Button from "../Button.svelte"; import Button from "../Button.svelte";
import NamingScheme from "../NamingScheme.svelte"; import NamingScheme from "../NamingScheme.svelte";
export let guildId;
setDefaultHeaders(); setDefaultHeaders();
let channels = []; let channels = [];

View File

@ -1,4 +1,4 @@
export const API_URL = env.API_URL || "http://172.24.138.236:3000" export const API_URL = env.API_URL || "http://192.168.90.213:3000"
export const PLACEHOLDER_DOCS_URL = "https://docs.ticketsbot.net/setup/placeholders.html" export const PLACEHOLDER_DOCS_URL = "https://docs.ticketsbot.net/setup/placeholders.html"
export const OAUTH = { export const OAUTH = {

2
go.mod
View File

@ -6,7 +6,7 @@ require (
github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/toml v0.3.1
github.com/TicketsBot/archiverclient v0.0.0-20210220155137-a562b2f1bbbb github.com/TicketsBot/archiverclient v0.0.0-20210220155137-a562b2f1bbbb
github.com/TicketsBot/common v0.0.0-20210727134627-35eb7ed03a44 github.com/TicketsBot/common v0.0.0-20210727134627-35eb7ed03a44
github.com/TicketsBot/database v0.0.0-20210725125137-5540e9ff7484 github.com/TicketsBot/database v0.0.0-20210728122440-a0cf03a651c8
github.com/TicketsBot/worker v0.0.0-20210727130432-3df3cd1246a3 github.com/TicketsBot/worker v0.0.0-20210727130432-3df3cd1246a3
github.com/apex/log v1.1.2 github.com/apex/log v1.1.2
github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect

View File

@ -2,4 +2,4 @@ package rpc
import "github.com/TicketsBot/common/premium" import "github.com/TicketsBot/common/premium"
var PremiumClient *premium.PremiumLookupClient var PremiumClient premium.IPremiumLookupClient