-
Notifications
You must be signed in to change notification settings - Fork 11
/
gql_scalars.go
144 lines (124 loc) · 3.11 KB
/
gql_scalars.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package models
import (
"time"
"github.com/99designs/gqlgen/graphql"
"github.com/guregu/null"
"github.com/guregu/null/zero"
)
func MarshalZeroString(zs zero.String) graphql.Marshaler {
if !zs.Valid {
return graphql.Null
}
return graphql.MarshalString(zs.String)
}
func UnmarshalZeroString(v interface{}) (zero.String, error) {
if v == nil {
return zero.NewString("", false), nil
}
s, err := graphql.UnmarshalString(v)
return zero.NewString(s, err == nil), err
}
func MarshalNullString(ns null.String) graphql.Marshaler {
if !ns.Valid {
return graphql.Null
}
return graphql.MarshalString(ns.String)
}
func UnmarshalNullString(v interface{}) (null.String, error) {
if v == nil {
return null.NewString("", false), nil
}
s, err := graphql.UnmarshalString(v)
return null.NewString(s, err == nil), err
}
func MarshalZeroTime(zt zero.Time) graphql.Marshaler {
if !zt.Valid {
return graphql.Null
}
return graphql.MarshalTime(zt.Time)
}
func UnmarshalZeroTime(v interface{}) (zero.Time, error) {
if v == nil {
return zero.NewTime(time.Time{}, false), nil
}
t, err := graphql.UnmarshalTime(v)
return zero.NewTime(t, err == nil), err
}
func MarshalZeroBool(zb zero.Bool) graphql.Marshaler {
if !zb.Valid {
return graphql.Null
}
return graphql.MarshalBoolean(zb.Bool)
}
func UnmarshalZeroBool(v interface{}) (zero.Bool, error) {
if v == nil {
return zero.NewBool(false, false), nil
}
b, err := graphql.UnmarshalBoolean(v)
return zero.NewBool(b, err == nil), err
}
func MarshalZeroInt(zi zero.Int) graphql.Marshaler {
if !zi.Valid {
return graphql.Null
}
return graphql.MarshalInt64(zi.Int64)
}
func UnmarshalZeroInt(v interface{}) (zero.Int, error) {
if v == nil {
return zero.NewInt(0, false), nil
}
i, err := graphql.UnmarshalInt64(v)
return zero.NewInt(i, err == nil), err
}
func MarshalNullInt(ni null.Int) graphql.Marshaler {
if !ni.Valid {
return graphql.Null
}
return graphql.MarshalInt64(ni.Int64)
}
func UnmarshalNullInt(v interface{}) (null.Int, error) {
if v == nil {
return null.NewInt(0, false), nil
}
i, err := graphql.UnmarshalInt64(v)
return null.NewInt(i, err == nil), err
}
func MarshalNullBool(nb null.Bool) graphql.Marshaler {
if !nb.Valid {
return graphql.Null
}
return graphql.MarshalBoolean(nb.Bool)
}
func UnmarshalNullBool(v interface{}) (null.Bool, error) {
if v == nil {
return null.NewBool(false, false), nil
}
b, err := graphql.UnmarshalBoolean(v)
return null.NewBool(b, err == nil), err
}
func MarshalZeroFloat(zf zero.Float) graphql.Marshaler {
if !zf.Valid {
return graphql.Null
}
return graphql.MarshalFloat(zf.Float64)
}
func UnmarshalZeroFloat(v interface{}) (zero.Float, error) {
if v == nil {
return zero.NewFloat(0, false), nil
}
f, err := graphql.UnmarshalFloat(v)
return zero.NewFloat(f, err == nil), err
}
func MarshalNullFloat(zf null.Float) graphql.Marshaler {
if !zf.Valid {
return graphql.Null
}
return graphql.MarshalFloat(zf.Float64)
}
func UnmarshalNullFloat(v interface{}) (null.Float, error) {
if v == nil {
return null.NewFloat(0, false), nil
}
f, err := graphql.UnmarshalFloat(v)
return null.NewFloat(f, err == nil), err
}