🏷️ Added MarshalJSON for Scopes domain
This commit is contained in:
parent
a8ba34b905
commit
832a0be91a
|
@ -3,6 +3,7 @@ package domain
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
@ -133,6 +134,18 @@ func (s *Scopes) UnmarshalJSON(v []byte) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s Scopes) MarshalJSON() ([]byte, error) {
|
||||
scopes := make([]string, len(s))
|
||||
|
||||
for i := range s {
|
||||
scopes[i] = s[i].String()
|
||||
}
|
||||
|
||||
sort.Strings(scopes)
|
||||
|
||||
return []byte(strconv.Quote(strings.Join(scopes, " "))), nil
|
||||
}
|
||||
|
||||
// String returns scope slug as string.
|
||||
func (s Scope) String() string {
|
||||
return s.slug
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package domain_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/goccy/go-json"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"source.toby3d.me/website/indieauth/internal/domain"
|
||||
)
|
||||
|
||||
func TestScopesUnmarshalJSON(t *testing.T) {
|
||||
func TestScopes_UnmarshalJSON(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
result := &struct {
|
||||
|
|
Loading…
Reference in New Issue