Skip to content

Commit

Permalink
Merge pull request #12 from waifuvault/support-password-as-body
Browse files Browse the repository at this point in the history
support password as body
  • Loading branch information
VictoriqueMoe authored May 13, 2024
2 parents df6f7e9 + 99aed5f commit 67103ae
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions pkg/waifu_vault_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,44 +35,60 @@ func (re *api) UploadFile(ctx context.Context, options mod.WaifuvaultPutOpts) (*
if options.File != nil || options.Bytes != nil {

var fileBytes *bytes.Buffer
var w io.Writer
var fileFormWriter io.Writer
var err error

writer = multipart.NewWriter(&body)
if options.File != nil {
fileBytes = bytes.NewBuffer(nil)
_, err = io.Copy(fileBytes, options.File)
if err != nil {
return nil, err
}
w, err = writer.CreateFormFile("file", filepath.Base(options.File.Name()))
fileFormWriter, err = writer.CreateFormFile("file", filepath.Base(options.File.Name()))

} else {
fileBytes = bytes.NewBuffer(*options.Bytes)
if options.FileName == "" {
return nil, errors.New("FileName must be set if bytes is used")
}
w, err = writer.CreateFormFile("file", options.FileName)
fileFormWriter, err = writer.CreateFormFile("file", options.FileName)
}

if options.Password != "" {
passwordFormWriter, err := writer.CreateFormField("password")
if err != nil {
return nil, err
}
if _, err = passwordFormWriter.Write([]byte(options.Password)); err != nil {
return nil, err
}
}

if err != nil {
return nil, err
}

if _, err = w.Write(fileBytes.Bytes()); err != nil {
if _, err = fileFormWriter.Write(fileBytes.Bytes()); err != nil {
return nil, err
}
err = writer.Close()
if err != nil {
return nil, err
}
} else if options.Url != "" {
bodyUrl := fmt.Sprintf(`{"url": "%s"}`, options.Url)
var bodyUrl string
if options.Password != "" {
bodyUrl = fmt.Sprintf(`{"url": "%s", "password": "%s"}`, options.Url, options.Password)
} else {
bodyUrl = fmt.Sprintf(`{"url": "%s"}`, options.Url)
}
body = *bytes.NewBuffer([]byte(bodyUrl))
}

uploadUrl := getUrl(map[string]any{
"expires": options.Expires,
"hide_filename": options.HideFilename,
"password": options.Password,
"one_time_download": options.OneTimeDownload,
}, "")

Expand Down

0 comments on commit 67103ae

Please sign in to comment.