1// Copyright (C) 2019 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4package consoleql 5 6import ( 7 "github.com/graphql-go/graphql" 8 "go.uber.org/zap" 9 10 "storj.io/storj/satellite/console" 11 "storj.io/storj/satellite/mailservice" 12) 13 14// TypeCreator handles graphql type creation and error checking. 15type TypeCreator struct { 16 query *graphql.Object 17 mutation *graphql.Object 18 19 user *graphql.Object 20 reward *graphql.Object 21 project *graphql.Object 22 projectUsage *graphql.Object 23 projectsPage *graphql.Object 24 bucketUsage *graphql.Object 25 bucketUsagePage *graphql.Object 26 projectMember *graphql.Object 27 projectMemberPage *graphql.Object 28 apiKeyPage *graphql.Object 29 apiKeyInfo *graphql.Object 30 createAPIKey *graphql.Object 31 32 userInput *graphql.InputObject 33 projectInput *graphql.InputObject 34 projectLimit *graphql.InputObject 35 projectsCursor *graphql.InputObject 36 bucketUsageCursor *graphql.InputObject 37 projectMembersCursor *graphql.InputObject 38 apiKeysCursor *graphql.InputObject 39} 40 41// Create create types and check for error. 42func (c *TypeCreator) Create(log *zap.Logger, service *console.Service, mailService *mailservice.Service) error { 43 // inputs 44 c.userInput = graphqlUserInput() 45 if err := c.userInput.Error(); err != nil { 46 return err 47 } 48 49 c.projectInput = graphqlProjectInput() 50 if err := c.projectInput.Error(); err != nil { 51 return err 52 } 53 54 c.projectLimit = graphqlProjectLimit() 55 if err := c.projectLimit.Error(); err != nil { 56 return err 57 } 58 59 c.bucketUsageCursor = graphqlBucketUsageCursor() 60 if err := c.bucketUsageCursor.Error(); err != nil { 61 return err 62 } 63 64 c.projectMembersCursor = graphqlProjectMembersCursor() 65 if err := c.projectMembersCursor.Error(); err != nil { 66 return err 67 } 68 69 c.apiKeysCursor = graphqlAPIKeysCursor() 70 if err := c.apiKeysCursor.Error(); err != nil { 71 return err 72 } 73 74 // entities 75 c.user = graphqlUser() 76 if err := c.user.Error(); err != nil { 77 return err 78 } 79 80 c.reward = graphqlReward() 81 if err := c.reward.Error(); err != nil { 82 return err 83 } 84 85 c.projectUsage = graphqlProjectUsage() 86 if err := c.projectUsage.Error(); err != nil { 87 return err 88 } 89 90 c.bucketUsage = graphqlBucketUsage() 91 if err := c.bucketUsage.Error(); err != nil { 92 return err 93 } 94 95 c.bucketUsagePage = graphqlBucketUsagePage(c) 96 if err := c.bucketUsagePage.Error(); err != nil { 97 return err 98 } 99 100 c.apiKeyInfo = graphqlAPIKeyInfo() 101 if err := c.apiKeyInfo.Error(); err != nil { 102 return err 103 } 104 105 c.createAPIKey = graphqlCreateAPIKey(c) 106 if err := c.createAPIKey.Error(); err != nil { 107 return err 108 } 109 110 c.projectMember = graphqlProjectMember(service, c) 111 if err := c.projectMember.Error(); err != nil { 112 return err 113 } 114 115 c.projectMemberPage = graphqlProjectMembersPage(c) 116 if err := c.projectMemberPage.Error(); err != nil { 117 return err 118 } 119 120 c.apiKeyPage = graphqlAPIKeysPage(c) 121 if err := c.apiKeyPage.Error(); err != nil { 122 return err 123 } 124 125 c.project = graphqlProject(service, c) 126 if err := c.project.Error(); err != nil { 127 return err 128 } 129 130 c.projectsCursor = graphqlProjectsCursor() 131 if err := c.projectsCursor.Error(); err != nil { 132 return err 133 } 134 135 c.projectsPage = graphqlProjectsPage(c) 136 if err := c.projectsPage.Error(); err != nil { 137 return err 138 } 139 140 // root objects 141 c.query = rootQuery(service, mailService, c) 142 if err := c.query.Error(); err != nil { 143 return err 144 } 145 146 c.mutation = rootMutation(log, service, mailService, c) 147 if err := c.mutation.Error(); err != nil { 148 return err 149 } 150 151 return nil 152} 153 154// RootQuery returns instance of query *graphql.Object. 155func (c *TypeCreator) RootQuery() *graphql.Object { 156 return c.query 157} 158 159// RootMutation returns instance of mutation *graphql.Object. 160func (c *TypeCreator) RootMutation() *graphql.Object { 161 return c.mutation 162} 163