summaryrefslogtreecommitdiff
path: root/src/helsinki.at/rhimportd/ctrlWebSimple.go
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2016-01-07 20:32:35 (GMT)
committerChristian Pointner <equinox@helsinki.at>2016-01-07 20:32:35 (GMT)
commit92f96b74e3816214a65973b3b362424d110b3a77 (patch)
tree1c11ac73e9e6ae365f28b9cedb1cb105b397458b /src/helsinki.at/rhimportd/ctrlWebSimple.go
parent772896795c3799b4595eb6abbc0355184edc91ff (diff)
improved makefile
Diffstat (limited to 'src/helsinki.at/rhimportd/ctrlWebSimple.go')
-rw-r--r--src/helsinki.at/rhimportd/ctrlWebSimple.go161
1 files changed, 0 insertions, 161 deletions
diff --git a/src/helsinki.at/rhimportd/ctrlWebSimple.go b/src/helsinki.at/rhimportd/ctrlWebSimple.go
deleted file mode 100644
index cd2c556..0000000
--- a/src/helsinki.at/rhimportd/ctrlWebSimple.go
+++ /dev/null
@@ -1,161 +0,0 @@
-//
-// rhimportd
-//
-// The Radio Helsinki Rivendell Import Daemon
-//
-//
-// Copyright (C) 2015-2016 Christian Pointner <equinox@helsinki.at>
-//
-// This file is part of rhimportd.
-//
-// rhimportd is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// any later version.
-//
-// rhimportd is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with rhimportd. If not, see <http://www.gnu.org/licenses/>.
-//
-
-package main
-
-import (
- "encoding/json"
- "fmt"
- "helsinki.at/rhimport"
- "html"
- "net/http"
-)
-
-type webSimpleRequestData struct {
- UserName string `json:"LOGIN_NAME"`
- Password string `json:"PASSWORD"`
- ShowId uint `json:"SHOW_ID"`
- ClearShowCarts bool `json:"CLEAR_SHOW_CARTS"`
- MusicPoolGroup string `json:"MUSIC_POOL_GROUP"`
- Cart uint `json:"CART_NUMBER"`
- ClearCart bool `json:"CLEAR_CART"`
- Cut uint `json:"CUT_NUMBER"`
- Channels uint `json:"CHANNELS"`
- NormalizationLevel int `json:"NORMALIZATION_LEVEL"`
- AutotrimLevel int `json:"AUTOTRIM_LEVEL"`
- UseMetaData bool `json:"USE_METADATA"`
- SourceUri string `json:"SOURCE_URI"`
-}
-
-func newWebSimpleRequestData(conf *rhimport.Config) *webSimpleRequestData {
- rd := new(webSimpleRequestData)
- rd.UserName = ""
- rd.Password = ""
- rd.ShowId = 0
- rd.ClearShowCarts = false
- rd.MusicPoolGroup = ""
- rd.Cart = 0
- rd.ClearCart = false
- rd.Cut = 0
- rd.Channels = conf.ImportParamDefaults.Channels
- rd.NormalizationLevel = conf.ImportParamDefaults.NormalizationLevel
- rd.AutotrimLevel = conf.ImportParamDefaults.AutotrimLevel
- rd.UseMetaData = conf.ImportParamDefaults.UseMetaData
- rd.SourceUri = ""
-
- return rd
-}
-
-type webSimpleResponseData struct {
- ResponseCode int `json:"REPONSE_CODE"`
- ErrorString string `json:"ERROR_STRING"`
- Cart uint `json:"CART_NUMBER"`
- Cut uint `json:"CUT_NUMBER"`
-}
-
-func webSimpleErrorResponse(w http.ResponseWriter, code int, errStr string) {
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusInternalServerError)
- encoder := json.NewEncoder(w)
- respdata := webSimpleResponseData{code, errStr, 0, 0}
- encoder.Encode(respdata)
-}
-
-func webSimpleResponse(w http.ResponseWriter, result *rhimport.Result) {
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusInternalServerError)
- encoder := json.NewEncoder(w)
- respdata := webSimpleResponseData{result.ResponseCode, result.ErrorString, result.Cart, result.Cut}
- encoder.Encode(respdata)
-}
-
-func webSimpleParseRequest(conf *rhimport.Config, rddb *rhimport.RdDbChan, trusted bool, r *http.Request) (ctx *rhimport.Context, err error) {
-
- decoder := json.NewDecoder(r.Body)
- reqdata := newWebSimpleRequestData(conf)
- if jsonerr := decoder.Decode(reqdata); jsonerr != nil {
- err = fmt.Errorf("Error parsing JSON response: %s", jsonerr)
- return
- }
-
- ctx = rhimport.NewContext(conf, rddb)
- if trusted {
- ctx.UserName = r.Header.Get("X-Forwarded-User")
- } else {
- ctx.UserName = reqdata.UserName
- ctx.Password = reqdata.Password
- }
- ctx.Trusted = trusted
- ctx.ShowId = reqdata.ShowId
- ctx.ClearShowCarts = reqdata.ClearShowCarts
- ctx.GroupName = reqdata.MusicPoolGroup
- ctx.Cart = reqdata.Cart
- ctx.ClearCart = reqdata.ClearCart
- ctx.Cut = reqdata.Cut
- ctx.Channels = reqdata.Channels
- ctx.NormalizationLevel = reqdata.NormalizationLevel
- ctx.AutotrimLevel = reqdata.AutotrimLevel
- ctx.UseMetaData = reqdata.UseMetaData
- ctx.SourceUri = reqdata.SourceUri
- return
-}
-
-func webSimpleHandler(conf *rhimport.Config, rddb *rhimport.RdDbChan, sessions *rhimport.SessionStoreChan, trusted bool, w http.ResponseWriter, r *http.Request) {
- rhdl.Printf("WebSimpleHandler: request for '%s'", html.EscapeString(r.URL.Path))
-
- var ctx *rhimport.Context
- var err error
- if ctx, err = webSimpleParseRequest(conf, rddb, trusted, r); err != nil {
- webSimpleErrorResponse(w, http.StatusBadRequest, err.Error())
- return
- }
-
- if err = ctx.SanityCheck(); err != nil {
- webSimpleErrorResponse(w, http.StatusBadRequest, err.Error())
- return
- }
-
- var res *rhimport.Result
- if res, err = rhimport.FetchFile(ctx); err != nil {
- webSimpleErrorResponse(w, http.StatusInternalServerError, err.Error())
- return
- }
- if res.ResponseCode != http.StatusOK {
- webSimpleErrorResponse(w, res.ResponseCode, res.ErrorString)
- return
- }
-
- if res, err = rhimport.ImportFile(ctx); err != nil {
- webSimpleErrorResponse(w, http.StatusInternalServerError, err.Error())
- return
- }
- if res.ResponseCode == http.StatusOK {
- rhl.Println("ImportFile succesfully imported", ctx.SourceFile)
- } else {
- rhl.Println("ImportFile import of", ctx.SourceFile, "was unsuccesful")
- }
-
- webSimpleResponse(w, res)
- return
-}