github.com/ngocphuongnb/tetua@v0.0.7-alpha/app/services/file.go (about)

     1  package services
     2  
     3  import (
     4  	"github.com/ngocphuongnb/tetua/app/entities"
     5  	"github.com/ngocphuongnb/tetua/app/fs"
     6  	"github.com/ngocphuongnb/tetua/app/repositories"
     7  	"github.com/ngocphuongnb/tetua/app/server"
     8  	"github.com/valyala/fasthttp"
     9  )
    10  
    11  func SaveFile(c server.Context, inputFileName string) (*entities.File, error) {
    12  	featuredImageHeader, err := c.File(inputFileName)
    13  	if err != nil {
    14  		if err != fasthttp.ErrMissingFile {
    15  			c.Logger().Error(err)
    16  			return nil, err
    17  		}
    18  		return nil, nil
    19  	}
    20  
    21  	featuredImage, err := fs.Disk().PutMultipart(c.Context(), featuredImageHeader)
    22  	if err != nil {
    23  		return nil, err
    24  	}
    25  
    26  	return repositories.File.Create(c.Context(), &entities.File{
    27  		Disk:   featuredImage.Disk,
    28  		Path:   featuredImage.Path,
    29  		Type:   featuredImage.Type,
    30  		Size:   featuredImage.Size,
    31  		UserID: c.User().ID,
    32  	})
    33  }