diff options
Diffstat (limited to 'user/controller.go')
| -rw-r--r-- | user/controller.go | 92 | 
1 files changed, 92 insertions, 0 deletions
diff --git a/user/controller.go b/user/controller.go index 15061cc..1dc85da 100644 --- a/user/controller.go +++ b/user/controller.go @@ -20,6 +20,8 @@ package user  import (    e "vidhukant.com/openbills/errors"  	"github.com/gin-gonic/gin" +	"github.com/google/uuid" +	"github.com/spf13/viper"  	"net/http"  ) @@ -51,6 +53,96 @@ func handleGetUser (ctx *gin.Context) {  	})  } +func handleUploadLogo(ctx *gin.Context) { +	var user User + +  uId, ok := ctx.Get("UserID") +  if !ok { +    ctx.Error(e.ErrUnauthorized) +    ctx.Abort() +    return +  } + +  userId := uId.(uint) +	user.ID = userId + +	// TODO: handle potential errors +	file, err := ctx.FormFile("logo") +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	dest := uuid.New().String() + +	// TODO: handle potential errors +	err = ctx.SaveUploadedFile(file, viper.GetString("data.upload_dir") + dest) +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	// TODO: delete old file (if any) +	err = user.update(map[string]interface{}{"logo_file": dest}) +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	ctx.JSON(http.StatusOK, gin.H{ +		"message": "success", +	}) +} + +func handleUploadSignature(ctx *gin.Context) { +	var user User + +  uId, ok := ctx.Get("UserID") +  if !ok { +    ctx.Error(e.ErrUnauthorized) +    ctx.Abort() +    return +  } + +  userId := uId.(uint) +	user.ID = userId + +	// TODO: handle potential errors +	file, err := ctx.FormFile("signature") +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	dest := uuid.New().String() + +	// TODO: handle potential errors +	err = ctx.SaveUploadedFile(file, viper.GetString("data.upload_dir") + dest) +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	// TODO: delete old file (if any) +	err = user.update(map[string]interface{}{"signature_file": dest}) +	if err != nil { +		ctx.Error(err) +		ctx.Abort() +		return +	} + +	ctx.JSON(http.StatusOK, gin.H{ +		"message": "success", +	}) +} + +// TODO: fix this stuff +// also add some kind of 2 factor verification  func handleDelUser (ctx *gin.Context) {  	id := uint(1) // get from JWT  |