package utils

import "sort"

type ParameterBody struct {
	Name  string
	Bytes []byte
}

func NewStringParameter(name string, value string) ParameterBody {
	var parameterBody = ParameterBody{}
	if len(value) == 0 {
		parameterBody = ParameterBody{
			Name:  name,
			Bytes: nil,
		}
	} else {
		parameterBody = ParameterBody{
			Name:  name,
			Bytes: []byte(value),
		}
	}
	return parameterBody
}

func NewBytesParameter(name string, bytes []byte) ParameterBody {
	parameterBody := ParameterBody{
		Name:  name,
		Bytes: bytes,
	}
	return parameterBody
}

func (p ParameterBody) Less(that ParameterBody) bool {
	return p.Name < that.Name
}

func SortParameterBody(parameterBody []ParameterBody) {
	sort.Slice(parameterBody, func(i, j int) bool {
		return parameterBody[i].Less(parameterBody[j])
	})
}
