From 3a2c7075ddd45e792e50fa45f1c2fd69c73fbe53 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 10 Dec 2015 17:59:30 +0100 Subject: added add_cart function diff --git a/importer.go b/importer.go index 68b71a6..c7b1a66 100644 --- a/importer.go +++ b/importer.go @@ -114,6 +114,57 @@ func (ctx *ImportContext) getShowInfo() (err error) { return } +func send_post_request(url string, b *bytes.Buffer, contenttype string) (err error) { + var req *http.Request + if req, err = http.NewRequest("POST", url, b); err != nil { + return + } + if contenttype != "" { + req.Header.Set("Content-Type", contenttype) + } + + client := &http.Client{} + var res *http.Response + if res, err = client.Do(req); err != nil { + return + } + defer res.Body.Close() + + if res.StatusCode != http.StatusOK { + // TODO: better error output + err = fmt.Errorf("bad status: %s", res.Status) + } + return +} + +func add_cart(ctx *ImportContext) (err error) { + var b bytes.Buffer + w := multipart.NewWriter(&b) + + if err = w.WriteField("COMMAND", "12"); err != nil { + return + } + if err = w.WriteField("LOGIN_NAME", ctx.UserName); err != nil { + return + } + if err = w.WriteField("PASSWORD", ctx.Password); err != nil { + return + } + if err = w.WriteField("GRPOUP_NAME", ctx.GroupName); err != nil { + return + } + if err = w.WriteField("TYPE", "audio"); err != nil { + return + } + if ctx.Cart != 0 { + if err = w.WriteField("CART_NUMBER", fmt.Sprintf("%d", ctx.Cart)); err != nil { + return + } + } + w.Close() + return send_post_request(ctx.Config.RDXportEndpoint, &b, w.FormDataContentType()) +} + func import_audio(ctx *ImportContext) (err error) { var b bytes.Buffer w := multipart.NewWriter(&b) @@ -160,24 +211,7 @@ func import_audio(ctx *ImportContext) (err error) { f.Close() w.Close() - var req *http.Request - if req, err = http.NewRequest("POST", ctx.Config.RDXportEndpoint, &b); err != nil { - return - } - req.Header.Set("Content-Type", w.FormDataContentType()) - - client := &http.Client{} - var res *http.Response - if res, err = client.Do(req); err != nil { - return - } - defer res.Body.Close() - - if res.StatusCode != http.StatusOK { - // TODO: better error output - err = fmt.Errorf("bad status: %s", res.Status) - } - return + return send_post_request(ctx.Config.RDXportEndpoint, &b, w.FormDataContentType()) } func cleanup_files(ctx *ImportContext) { -- cgit v0.10.2