add router for get filters
This commit is contained in:
parent
3a51c42061
commit
3a1cf6f778
@ -320,14 +320,27 @@ func UpdateVoiceSettings(donatService model.DonatService) echo.HandlerFunc {
|
|||||||
// @Tags Donate
|
// @Tags Donate
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
|
// @Security BearerAuth
|
||||||
// @Success 200 {object} model.FilterSettingResponse "Current filters settings"
|
// @Success 200 {object} model.FilterSettingResponse "Current filters settings"
|
||||||
// @Failure 400 {object} echo.HTTPError "Bad request"
|
// @Failure 400 {object} echo.HTTPError "Bad request"
|
||||||
// @Failure 401 {object} echo.HTTPError "Unauthorized or expired token"
|
// @Failure 401 {object} echo.HTTPError "Unauthorized or expired token"
|
||||||
// @Failure 422 {object} echo.HTTPError "Validation error"
|
// @Failure 422 {object} echo.HTTPError "Validation error"
|
||||||
// @Router /filters-settings [get]
|
// @Router /filters-settings [get]
|
||||||
func GetFiltersSettings(donatService model.DonatService) echo.HandlerFunc {
|
func GetFiltersSettings(donatService model.DonatService) echo.HandlerFunc {
|
||||||
return func(c echo.Context) error {
|
return func(request echo.Context) error {
|
||||||
return nil
|
ctx := context.Background()
|
||||||
|
|
||||||
|
authData, err := donatService.CheckToken(request)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Unauthorized")
|
||||||
|
return echo.NewHTTPError(http.StatusUnauthorized, err.Error())
|
||||||
|
}
|
||||||
|
filtersSettings, err := donatService.GetFiltersSettings(ctx, authData.AccountID)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to get filters settings", "error", err)
|
||||||
|
return echo.NewHTTPError(http.StatusInternalServerError, "Internal server error")
|
||||||
|
}
|
||||||
|
return request.JSON(http.StatusOK, filtersSettings)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +78,8 @@ func IncludeDonatHandlers(
|
|||||||
server.GET(PREFIX+"/voice-settings", GetVoiceSettings(donatService))
|
server.GET(PREFIX+"/voice-settings", GetVoiceSettings(donatService))
|
||||||
server.PATCH(PREFIX+"/voice-settings", UpdateVoiceSettings(donatService))
|
server.PATCH(PREFIX+"/voice-settings", UpdateVoiceSettings(donatService))
|
||||||
|
|
||||||
|
server.GET(PREFIX+"/filters-settings", GetFiltersSettings(donatService))
|
||||||
|
|
||||||
server.GET(PREFIX+"/donat/get/:streamerID", GetDonat(donatService))
|
server.GET(PREFIX+"/donat/get/:streamerID", GetDonat(donatService))
|
||||||
|
|
||||||
server.POST(PREFIX+"/donat/view/:donatID", MarkDonatView(donatService))
|
server.POST(PREFIX+"/donat/view/:donatID", MarkDonatView(donatService))
|
||||||
|
@ -254,6 +254,11 @@ const docTemplate = `{
|
|||||||
},
|
},
|
||||||
"/filters-settings": {
|
"/filters-settings": {
|
||||||
"get": {
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"BearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
"description": "Get donat filters settings",
|
"description": "Get donat filters settings",
|
||||||
"consumes": [
|
"consumes": [
|
||||||
"application/json"
|
"application/json"
|
||||||
|
@ -247,6 +247,11 @@
|
|||||||
},
|
},
|
||||||
"/filters-settings": {
|
"/filters-settings": {
|
||||||
"get": {
|
"get": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"BearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
"description": "Get donat filters settings",
|
"description": "Get donat filters settings",
|
||||||
"consumes": [
|
"consumes": [
|
||||||
"application/json"
|
"application/json"
|
||||||
|
@ -468,6 +468,8 @@ paths:
|
|||||||
description: Validation error
|
description: Validation error
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/definitions/echo.HTTPError'
|
$ref: '#/definitions/echo.HTTPError'
|
||||||
|
security:
|
||||||
|
- BearerAuth: []
|
||||||
summary: Get donat filters settings
|
summary: Get donat filters settings
|
||||||
tags:
|
tags:
|
||||||
- Donate
|
- Donate
|
||||||
|
@ -93,7 +93,7 @@ type DonatService interface {
|
|||||||
GetVoiceSettings(ctx context.Context, streamerID int) (VoiceSettingsResponse, error)
|
GetVoiceSettings(ctx context.Context, streamerID int) (VoiceSettingsResponse, error)
|
||||||
UpdateVoiceSettings(ctx context.Context, streamerID int, updateModel UpdateVoiceSettings) error
|
UpdateVoiceSettings(ctx context.Context, streamerID int, updateModel UpdateVoiceSettings) error
|
||||||
|
|
||||||
GetFiltersSettings(ctx context.Context, streamerID StreamerID) (FilterSettingResponse, error)
|
GetFiltersSettings(ctx context.Context, streamerID int) (FilterSettingResponse, error)
|
||||||
UpdateFiltersSettings(ctx context.Context, streamerID StreamerID, updateModel UpdateFilterSettings) error
|
UpdateFiltersSettings(ctx context.Context, streamerID StreamerID, updateModel UpdateFilterSettings) error
|
||||||
|
|
||||||
GetModerationSettings(ctx context.Context, streamerID StreamerID) (ModerationResponse, error)
|
GetModerationSettings(ctx context.Context, streamerID StreamerID) (ModerationResponse, error)
|
||||||
@ -128,6 +128,9 @@ type DonatRepo interface {
|
|||||||
InsertLanguagesForVoiceSetting(ctx context.Context, voiceSettingID int, languageIDs []int) error
|
InsertLanguagesForVoiceSetting(ctx context.Context, voiceSettingID int, languageIDs []int) error
|
||||||
GetLanguageIDsByISOCodes(ctx context.Context, isoCodes []string) ([]int, error)
|
GetLanguageIDsByISOCodes(ctx context.Context, isoCodes []string) ([]int, error)
|
||||||
GetVoiceSettingIDByStreamerID(ctx context.Context, streamerID int) (int, error)
|
GetVoiceSettingIDByStreamerID(ctx context.Context, streamerID int) (int, error)
|
||||||
|
|
||||||
|
GetFilterSettingsByStreamerID(ctx context.Context, streamerID int) (int, bool, error)
|
||||||
|
GetFilteredWords(ctx context.Context, streamerID int) ([]string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type TargetService interface {
|
type TargetService interface {
|
||||||
|
@ -268,7 +268,7 @@ var VoiceIDByStreamer = `
|
|||||||
|
|
||||||
`
|
`
|
||||||
|
|
||||||
const UpdateVoiceSettings = `
|
var UpdateVoiceSettings = `
|
||||||
UPDATE voice_settings
|
UPDATE voice_settings
|
||||||
SET
|
SET
|
||||||
enable = COALESCE(@enable, enable),
|
enable = COALESCE(@enable, enable),
|
||||||
@ -278,3 +278,10 @@ SET
|
|||||||
min_price = COALESCE(@min_price, min_price)
|
min_price = COALESCE(@min_price, min_price)
|
||||||
WHERE streamer_id = @streamer_id;
|
WHERE streamer_id = @streamer_id;
|
||||||
`
|
`
|
||||||
|
|
||||||
|
var GetFilterSettings = `
|
||||||
|
SELECT id, enable_links FROM filters WHERE streamer_id = @streamer_id;
|
||||||
|
`
|
||||||
|
|
||||||
|
var GetFilterWords = `
|
||||||
|
SELECT word FROM filters_words WHERE donat_filter_id = @donat_filter_id;`
|
||||||
|
@ -418,3 +418,52 @@ func (repoDonat *RepoDonat) UpdateVoiceSettings(
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (repoDonat *RepoDonat) GetFilterSettingsByStreamerID(
|
||||||
|
ctx context.Context,
|
||||||
|
streamerID int,
|
||||||
|
) (int, bool, error) {
|
||||||
|
args := pgx.NamedArgs{
|
||||||
|
"streamer_id": streamerID,
|
||||||
|
}
|
||||||
|
|
||||||
|
row, err := repoDonat.db.SelectOne(ctx, sql.GetFilterSettings, args)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to get filter settings", "error", err)
|
||||||
|
return 0, false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var filterSettingID int
|
||||||
|
var enableLinks bool
|
||||||
|
err = row.Scan(&filterSettingID, &enableLinks)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to scan filter settings", "error", err)
|
||||||
|
return 0, false, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return filterSettingID, enableLinks, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (repoDonat *RepoDonat) GetFilteredWords(
|
||||||
|
ctx context.Context,
|
||||||
|
filterId int,
|
||||||
|
) ([]string, error) {
|
||||||
|
args := pgx.NamedArgs{
|
||||||
|
"donat_filter_id": filterId,
|
||||||
|
}
|
||||||
|
rows, err := repoDonat.db.Select(ctx, sql.GetFilterSettings, args)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to get filter settings", "error", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var filterWords []string
|
||||||
|
err = pgxscan.ScanAll(&filterWords, rows)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to scan filter settings", "error", err)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return filterWords, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -352,9 +352,28 @@ func (donatService *ServiceDonat) UpdateVoiceSettings(
|
|||||||
|
|
||||||
func (donatService *ServiceDonat) GetFiltersSettings(
|
func (donatService *ServiceDonat) GetFiltersSettings(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
streamerID model.StreamerID,
|
streamerID int,
|
||||||
) (model.FilterSettingResponse, error) {
|
) (model.FilterSettingResponse, error) {
|
||||||
return model.FilterSettingResponse{}, nil
|
filterSettingID, enableLinks, err := donatService.donatRepo.GetFilterSettingsByStreamerID(ctx, streamerID)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to get filter settings", "error", err)
|
||||||
|
return model.FilterSettingResponse{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
filteredWords, err := donatService.donatRepo.GetFilteredWords(ctx, filterSettingID)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Failed to get filtered words", "error", err)
|
||||||
|
return model.FilterSettingResponse{}, err
|
||||||
|
}
|
||||||
|
if filteredWords == nil {
|
||||||
|
filteredWords = []string{}
|
||||||
|
}
|
||||||
|
response := model.FilterSettingResponse{
|
||||||
|
EnableLinks: enableLinks,
|
||||||
|
FilteredWords: filteredWords,
|
||||||
|
}
|
||||||
|
|
||||||
|
return response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (donatService *ServiceDonat) UpdateFiltersSettings(
|
func (donatService *ServiceDonat) UpdateFiltersSettings(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user