aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/resolvers/identity.go
diff options
context:
space:
mode:
Diffstat (limited to 'graphql/resolvers/identity.go')
-rw-r--r--graphql/resolvers/identity.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/graphql/resolvers/identity.go b/graphql/resolvers/identity.go
new file mode 100644
index 00000000..cc68197f
--- /dev/null
+++ b/graphql/resolvers/identity.go
@@ -0,0 +1,36 @@
+package resolvers
+
+import (
+ "context"
+
+ "github.com/MichaelMure/git-bug/identity"
+)
+
+type identityResolver struct{}
+
+func (identityResolver) Name(ctx context.Context, obj *identity.Interface) (*string, error) {
+ return nilIfEmpty((*obj).Name())
+}
+
+func (identityResolver) Email(ctx context.Context, obj *identity.Interface) (*string, error) {
+ return nilIfEmpty((*obj).Email())
+}
+
+func (identityResolver) Login(ctx context.Context, obj *identity.Interface) (*string, error) {
+ return nilIfEmpty((*obj).Login())
+}
+
+func (identityResolver) DisplayName(ctx context.Context, obj *identity.Interface) (string, error) {
+ return (*obj).DisplayName(), nil
+}
+
+func (identityResolver) AvatarURL(ctx context.Context, obj *identity.Interface) (*string, error) {
+ return nilIfEmpty((*obj).AvatarUrl())
+}
+
+func nilIfEmpty(s string) (*string, error) {
+ if s == "" {
+ return nil, nil
+ }
+ return &s, nil
+}