| 3621 | } |
| 3622 | |
| 3623 | func Decompress(logger *zap.Logger, encoding string, data []byte) ([]byte, error) { |
| 3624 | switch encoding { |
| 3625 | case "br": |
| 3626 | logger.Debug("decompressing brotli compressed data") |
| 3627 | reader := brotli.NewReader(bytes.NewReader(data)) |
| 3628 | decodedData, err := io.ReadAll(reader) |
| 3629 | if err != nil { |
| 3630 | utils.LogError(logger, err, "failed to read the brotli compressed data") |
| 3631 | return nil, err |
| 3632 | } |
| 3633 | return decodedData, nil |
| 3634 | case "gzip": |
| 3635 | logger.Debug("decoding gzip compressed data") |
| 3636 | reader, err := gzip.NewReader(bytes.NewReader(data)) |
| 3637 | if err != nil { |
| 3638 | utils.LogError(logger, err, "failed to create gzip reader") |
| 3639 | return nil, err |
| 3640 | } |
| 3641 | defer reader.Close() |
| 3642 | decodedData, err := io.ReadAll(reader) |
| 3643 | if err != nil { |
| 3644 | utils.LogError(logger, err, "failed to read the gzip compressed data") |
| 3645 | return nil, err |
| 3646 | } |
| 3647 | return decodedData, nil |
| 3648 | } |
| 3649 | return data, nil |
| 3650 | } |
| 3651 | |
| 3652 | func Compress(logger *zap.Logger, encoding string, data []byte) ([]byte, error) { |
| 3653 | switch encoding { |