diff options
author | Michael Muré <batolettre@gmail.com> | 2019-01-19 16:01:06 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-03-01 22:40:21 +0100 |
commit | 844616baf8dc628360942d57fd69f24e298e08da (patch) | |
tree | 3fd635e08a06de60618d47ab022554a1f78364de /graphql/resolvers/identity.go | |
parent | bdbe9e7e8256fff820efe1ce707e7154d517ecb3 (diff) | |
download | git-bug-844616baf8dc628360942d57fd69f24e298e08da.tar.gz |
identity: more progress and fixes
Diffstat (limited to 'graphql/resolvers/identity.go')
-rw-r--r-- | graphql/resolvers/identity.go | 36 |
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 +} |