Added methods to add and delete a publisher

Signed-off-by: kolaente <konrad@kola-entertainments.de>
This commit is contained in:
kolaente 2017-10-11 18:06:51 +02:00
parent 500007bdae
commit a78ac5d7da
6 changed files with 109 additions and 8 deletions

6
models/publishers_add.go Normal file
View File

@ -0,0 +1,6 @@
package models
func AddPublisher(publisher Publisher) (err error){
_, err = x.Insert(&publisher)
return err
}

View File

@ -0,0 +1,19 @@
package models
func DeletePublisherByID(id int64) error {
// Delete the publisher
_, err := x.Id(id).Delete(&Publisher{})
if err != nil {
return err
}
// Set all publisher to 0 on all book with this publisher
//book := Book{Publisher:0}
//book.Publisher = 0
//_, err = x.Where("publisher = ?", id).Update(book)
_, err = x.Table("books").Where("publisher = ?", id).Update(map[string]interface{}{"publisher":0})
return err
}

View File

@ -6,7 +6,6 @@ import (
"git.mowie.cc/konrad/Library/models"
"encoding/json"
"strings"
"fmt"
)
func AuthorAdd(c echo.Context) error {

View File

@ -0,0 +1,35 @@
package v1
import (
"github.com/labstack/echo"
"net/http"
"git.mowie.cc/konrad/Library/models"
"encoding/json"
"strings"
)
func PublisherAdd(c echo.Context) error {
// Check for Request Content
publisher := c.FormValue("publisher")
if publisher == "" {
return c.JSON(http.StatusBadRequest, models.Message{"No publisher model provided"})
}
// Decode the JSON
var publisherstruct models.Publisher
dec := json.NewDecoder(strings.NewReader(publisher))
err := dec.Decode(&publisherstruct)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Error decoding publisher: " + err.Error()})
}
// Insert the publisher
err = models.AddPublisher(publisherstruct)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Error"})
}
return c.JSON(http.StatusOK, models.Message{"success"})
}

View File

@ -0,0 +1,40 @@
package v1
import (
"github.com/labstack/echo"
"strconv"
"net/http"
"git.mowie.cc/konrad/Library/models"
)
func PublisherDelete(c echo.Context) error {
id := c.Param("id")
// Make int
publisherID, err := strconv.ParseInt(id, 10, 64)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Could not get publisher infos"})
}
// Check if the publisher exists
_, exists, err := models.GetPublisherByID(publisherID)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Could get publisher"})
}
if !exists {
return c.JSON(http.StatusBadRequest, models.Message{"The publisher does not exist."})
}
// Delete it
err = models.DeletePublisherByID(publisherID)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Could not delete publisher"})
}
return c.JSON(http.StatusOK, models.Message{"success"})
}

View File

@ -59,6 +59,8 @@ func RegisterRoutes(e *echo.Echo) {
a.DELETE("/authors/:id", apiv1.AuthorDelete)
// Manage Publishers
a.PUT("/publishers", apiv1.PublisherAdd)
a.DELETE("/publishers/:id", apiv1.PublisherDelete)
// Manage Users
@ -73,22 +75,22 @@ func RegisterRoutes(e *echo.Echo) {
POST /logout - ausloggen
GET /books/:id - Buch anzeigen
POST /books/:id/edit - |Buch bearbeiten (inkl mengen)
POST /books/:id - |Buch bearbeiten (inkl mengen)
DELETE /books/:id - |Buch löschen (+alle einträge in authors_books löschen dessen Bush dazu gehört)
GET /books/search?s=se - Suchen
GET /books/list - Auflisten
PUT /books/add - |Hinzufügen
GET /authors/:id - Autor anzeigen
POST /authors/:id/edit - |Autor bearbeiten
DELETE /authors/:id/delete - |Autor löschen (auch mit allem in books_author)
POST /authors/:id - |Autor bearbeiten
DELETE /authors/:id - |Autor löschen (auch mit allem in books_author)
GET /authors/list - Autoren auflisten
GET /authors/search?s=d - Autoren suchen
PUT /authors/add - |Hinzufügen
PUT /authors/add - |Hinzufügen
GET /publishers/:id - Verlag anzeigen
POST /publishers/:id/edit - |Verlag bearbeiten
DELETE /publishers/:id/delete - |Verlag löschen (bei büchern Verlag auf 0 setzen)
POST /publishers/:id - |Verlag bearbeiten
DELETE /publishers/:id - |Verlag löschen (bei büchern Verlag auf 0 setzen)
GET /publishers/list - Verlage auflisten
GET /publishers/search?s= - Verlage suchen
PUT /publishers/add - |Hinzufügen
@ -98,6 +100,6 @@ func RegisterRoutes(e *echo.Echo) {
GET /user - Nutzer anzeigen
PUT /user - |neue Nutzer anlegen
DELETE /user/:id - |nutzer löschen
POST /user/:id/edit - |nutzer bearbeiten
POST /user/:id - |nutzer bearbeiten
*/
}