@ -35,7 +35,7 @@ func main() {
r . HandleFunc ( "/api/v1/typ/{id:[0-9]+}" , getTypHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/typ/{id:[0-9]+}" , getTypHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/typ/{id:[0-9]+}" , updateTypHandler ) . Methods ( "PUT" , "OPTIONS" )
r . HandleFunc ( "/api/v1/typ/{id:[0-9]+}" , updateTypHandler ) . Methods ( "PUT" , "OPTIONS" )
/ * r . HandleFunc ( "/api/v1/pho" , createPhotoHandler ) . Methods ( "POST" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho" , createPhotoHandler ) . Methods ( "POST" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho/{id:[0-9]+}" , deletePhotoHandler ) . Methods ( "DELETE" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho/{id:[0-9]+}" , deletePhotoHandler ) . Methods ( "DELETE" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho" , showPhotoHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho" , showPhotoHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho/{id:[0-9]+}" , getPhotoHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/pho/{id:[0-9]+}" , getPhotoHandler ) . Methods ( "GET" , "OPTIONS" )
@ -52,12 +52,12 @@ func main() {
r . HandleFunc ( "/api/v1/itb" , showItemBHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/itb" , showItemBHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/itb/{id:[0-9]+}" , getItemBHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/itb/{id:[0-9]+}" , getItemBHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/itb/{id:[0-9]+}" , updateItemBHandler ) . Methods ( "PUT" , "OPTIONS" )
r . HandleFunc ( "/api/v1/itb/{id:[0-9]+}" , updateItemBHandler ) . Methods ( "PUT" , "OPTIONS" )
/ *
r . HandleFunc ( "/api/v1/ite" , createItemExtHandler ) . Methods ( "POST" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite" , createItemExtHandler ) . Methods ( "POST" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , deleteItemExtHandler ) . Methods ( "DELETE" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , deleteItemExtHandler ) . Methods ( "DELETE" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite" , showItemExtHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite" , showItemExtHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , getItemExtHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , getItemExtHandler ) . Methods ( "GET" , "OPTIONS" )
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , updateItemExtHandler ) . Methods ( "PUT" , "OPTIONS" ) * /
r . HandleFunc ( "/api/v1/ite/{id:[0-9]+}" , updateItemExtHandler ) . Methods ( "PUT" , "OPTIONS" ) * /
http . Handle ( "/" , r )
http . Handle ( "/" , r )
r . Use ( mux . CORSMethodMiddleware ( r ) )
r . Use ( mux . CORSMethodMiddleware ( r ) )
@ -200,3 +200,479 @@ func updateTypHandler(writer http.ResponseWriter, req *http.Request) {
writer . WriteHeader ( http . StatusOK )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
writer . Write ( b )
}
}
// Photo Funktionen
func createPhotoHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
var pho Photos
if req . Form [ "pfad" ] != nil {
pho . ItembId , _ = strconv . ParseUint ( req . FormValue ( "itembid" ) , 10 , 0 )
pho . ItemextId , _ = strconv . ParseUint ( req . FormValue ( "itemextid" ) , 10 , 0 )
pho . Pfad = req . FormValue ( "pfad" )
for formKey , formValue := range req . Form {
log . WithFields ( log . Fields { formKey : formValue } ) . Info ( "parsing from Form: " )
}
} else {
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var pho Photos
json . Unmarshal ( body , & pho )
}
log . Println ( pho )
log . Println ( "Name= " , pho . Pfad )
log . Info ( "creating new Photo" , pho . Pfad )
res , err := CreatePhoto ( pho )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusCreated )
writer . Write ( b )
}
func deletePhotoHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
phoId , _ := strconv . ParseUint ( mux . Vars ( req ) [ "id" ] , 10 , 0 )
log . Info ( "Deleting Photo with ID" , phoId )
_ , err = DeletePhoto ( uint64 ( phoId ) )
if err != nil {
log . Fatal ( "Error: Delete could not be executed" , err )
}
writer . WriteHeader ( http . StatusNoContent )
}
func showPhotoHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
res , err := ShowPhoto ( )
if err != nil {
log . Fatal ( "Error: Photos can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func getPhotoHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
phoId , _ := strconv . ParseUint ( mux . Vars ( req ) [ "id" ] , 10 , 0 )
res , err := GetPhoto ( uint64 ( phoId ) )
if err != nil {
log . Fatal ( "Error: Typ can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func updatePhotoHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var pho Photos
json . Unmarshal ( body , & pho )
log . Println ( "Name = " , pho . Pfad )
log . Info ( "updating Photo" , pho . Pfad )
res , err := UpdatePhoto ( pho )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
// Measure Funktionen
func createMeasureHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
var mea Measure
if req . Form [ "kurz" ] != nil {
mea . Kurz = req . FormValue ( "kurz" )
mea . Brust , _ = strconv . ParseFloat ( req . FormValue ( "brust" ) , 64 )
mea . LaengeT , _ = strconv . ParseFloat ( req . FormValue ( "laenget" ) , 64 )
mea . Schulterbreite , _ = strconv . ParseFloat ( req . FormValue ( "schulterbreite" ) , 64 )
mea . TaillenumfangT , _ = strconv . ParseFloat ( req . FormValue ( "taillenumfangt" ) , 64 )
mea . Hueftumfang , _ = strconv . ParseFloat ( req . FormValue ( "hueftumfang" ) , 64 )
mea . Innennaht , _ = strconv . ParseFloat ( req . FormValue ( "innennaht" ) , 64 )
mea . LaengeB , _ = strconv . ParseFloat ( req . FormValue ( "laengeb" ) , 64 )
mea . TaillenumfangB , _ = strconv . ParseFloat ( req . FormValue ( "taillenumfangb" ) , 64 )
for formKey , formValue := range req . Form {
log . WithFields ( log . Fields { formKey : formValue } ) . Info ( "parsing from Form: " )
}
} else {
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var mea Measure
json . Unmarshal ( body , & mea )
}
log . Println ( mea )
log . Println ( "Name= " , mea . Kurz )
log . Info ( "creating new Measure" , mea . Kurz )
res , err := CreateMeasure ( mea )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusCreated )
writer . Write ( b )
}
func deleteMeasureHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
meaId , _ := strconv . ParseUint ( req . FormValue ( "id" ) , 10 , 0 )
log . Info ( "Deleting Measure with ID" , meaId )
_ , err = DeleteMeasure ( uint64 ( meaId ) )
if err != nil {
log . Fatal ( "Error: Delete could not be executed" , err )
}
writer . WriteHeader ( http . StatusNoContent )
}
func showMeasureHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
res , err := ShowMeasure ( )
if err != nil {
log . Fatal ( "Error: Measure can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func getMeasureHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
meaId , _ := strconv . ParseUint ( req . FormValue ( "id" ) , 10 , 0 )
res , err := GetMeasure ( uint64 ( meaId ) )
if err != nil {
log . Fatal ( "Error: Measure can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func updateMeasureHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
var mea Measure
if req . Form [ "kurz" ] != nil {
mea . Kurz = req . FormValue ( "kurz" )
mea . Brust , _ = strconv . ParseFloat ( req . FormValue ( "brust" ) , 64 )
mea . LaengeT , _ = strconv . ParseFloat ( req . FormValue ( "laenget" ) , 64 )
mea . Schulterbreite , _ = strconv . ParseFloat ( req . FormValue ( "schulterbreite" ) , 64 )
mea . TaillenumfangT , _ = strconv . ParseFloat ( req . FormValue ( "taillenumfangt" ) , 64 )
mea . Hueftumfang , _ = strconv . ParseFloat ( req . FormValue ( "hueftumfang" ) , 64 )
mea . Innennaht , _ = strconv . ParseFloat ( req . FormValue ( "innennaht" ) , 64 )
mea . LaengeB , _ = strconv . ParseFloat ( req . FormValue ( "laengeb" ) , 64 )
mea . TaillenumfangB , _ = strconv . ParseFloat ( req . FormValue ( "taillenumfangb" ) , 64 )
for formKey , formValue := range req . Form {
log . WithFields ( log . Fields { formKey : formValue } ) . Info ( "parsing from Form: " )
}
} else {
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var mea Measure
json . Unmarshal ( body , & mea )
}
log . Println ( "Name = " , mea . Kurz )
log . Info ( "updating Measure" , mea . Kurz )
res , err := UpdateMeasure ( mea )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
// ItemsB Funktionen
func createItemBHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
var itemB Itemb
if req . Form [ "bezeichnung" ] != nil {
itemB . Bezeichnung = req . FormValue ( "bezeichnung" )
itemB . Kurzbeschreibung = req . FormValue ( "kurzbeschreibung" )
itemB . Material = req . FormValue ( "material" )
itemB . Groesse = req . FormValue ( "groesse" )
itemB . Farbe = req . FormValue ( "farbe" )
itbtyp , _ := strconv . ParseUint ( req . FormValue ( "typid" ) , 10 , 0 )
itemB . TypId = uint ( itbtyp )
itemB . AbmessungenId , _ = strconv . ParseUint ( req . FormValue ( "abmessungenid" ) , 10 , 0 )
for formKey , formValue := range req . Form {
log . WithFields ( log . Fields { formKey : formValue } ) . Info ( "parsing from Form: " )
}
} else {
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var itemB Itemb
json . Unmarshal ( body , & itemB )
}
log . Println ( itemB )
log . Println ( "Name= " , itemB . Bezeichnung )
log . Info ( "creating new Typ" , itemB . Bezeichnung )
res , err := CreateItemB ( itemB )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusCreated )
writer . Write ( b )
}
func deleteItemBHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
itemBId , _ := strconv . ParseUint ( mux . Vars ( req ) [ "id" ] , 10 , 0 )
log . Info ( "Deleting Typ with ID" , itemBId )
_ , err = DeleteItemB ( uint64 ( itemBId ) )
if err != nil {
log . Fatal ( "Error: Delete could not be executed" , err )
}
writer . WriteHeader ( http . StatusNoContent )
}
func showItemBHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
res , err := ShowItemB ( )
if err != nil {
log . Fatal ( "Error: Typ can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func getItemBHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
itemBId , _ := strconv . ParseUint ( mux . Vars ( req ) [ "id" ] , 10 , 0 )
res , err := GetItemB ( uint64 ( itemBId ) )
if err != nil {
log . Fatal ( "Error: Typ can't be shown " , err )
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := req . URL . String ( )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}
func updateItemBHandler ( writer http . ResponseWriter , req * http . Request ) {
writer . Header ( ) . Set ( "Access-Control-Allow-Origin" , "*" )
if req . Method == http . MethodOptions {
return
}
err := req . ParseMultipartForm ( 64 << 20 )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
return
}
var itemB Itemb
if req . Form [ "bezeichnung" ] != nil {
itemB . Bezeichnung = req . FormValue ( "bezeichnung" )
itemB . Kurzbeschreibung = req . FormValue ( "kurzbeschreibung" )
itemB . Material = req . FormValue ( "material" )
itemB . Groesse = req . FormValue ( "groesse" )
itemB . Farbe = req . FormValue ( "farbe" )
itbtyp , _ := strconv . ParseUint ( req . FormValue ( "typid" ) , 10 , 0 )
itemB . TypId = uint ( itbtyp )
itemB . AbmessungenId , _ = strconv . ParseUint ( req . FormValue ( "abmessungenid" ) , 10 , 0 )
for formKey , formValue := range req . Form {
log . WithFields ( log . Fields { formKey : formValue } ) . Info ( "parsing from Form: " )
}
} else {
body , err := io . ReadAll ( req . Body )
if err != nil {
writer . WriteHeader ( http . StatusBadRequest )
}
var itemB Itemb
json . Unmarshal ( body , & itemB )
}
log . Println ( "Name = " , itemB . Bezeichnung )
log . Info ( "updating Typ" , itemB . Bezeichnung )
res , err := UpdateItemB ( itemB )
if err != nil {
writer . WriteHeader ( http . StatusInternalServerError )
}
b , err := json . Marshal ( res )
if err != nil {
log . Fatal ( "Error: " , err )
}
location := fmt . Sprintf ( "%s/%d" , req . URL . String ( ) , res . Id )
writer . Header ( ) . Set ( "Location:" , location )
writer . Header ( ) . Set ( "Content-Type" , "application/json" )
writer . WriteHeader ( http . StatusOK )
writer . Write ( b )
}