...
1 package model
2
3 import (
4 "fmt"
5 "io"
6 "strings"
7 )
8
9 type Banned bool
10
11 func (b Banned) MarshalGQL(w io.Writer) {
12 if b {
13 w.Write([]byte("true"))
14 } else {
15 w.Write([]byte("false"))
16 }
17 }
18
19 func (b *Banned) UnmarshalGQL(v interface{}) error {
20 switch v := v.(type) {
21 case string:
22 *b = strings.ToLower(v) == "true"
23 return nil
24 case bool:
25 *b = Banned(v)
26 return nil
27 default:
28 return fmt.Errorf("%T is not a bool", v)
29 }
30 }
31
View as plain text