Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var InputObjectSegmentType = graphql.NewInputObject( graphql.InputObjectConfig{ Name: "InputObjectSegment", Fields: graphql.InputObjectConfigFieldMap{ "id": &graphql.InputObjectFieldConfig{ Type: graphql.Int, }, "sheetId": &graphql.InputObjectFieldConfig{ Type: graphql.Int, }, "label": &graphql.InputObjectFieldConfig{ Type: graphql.String, }, "content": &graphql.InputObjectFieldConfig{ Type: graphql.String, }, "createdAt": &graphql.InputObjectFieldConfig{ Type: graphql.String, }, }, }, )
View Source
var RootMutation = graphql.NewObject(graphql.ObjectConfig{ Name: "RootMutation", Fields: graphql.Fields{ "registerUser": &graphql.Field{ Type: UserType, Description: "Register user", Args: graphql.FieldConfigArgument{ "username": &graphql.ArgumentConfig{ Type: graphql.String, }, "password": &graphql.ArgumentConfig{ Type: graphql.String, }, }, Resolve: func(params graphql.ResolveParams) (interface{}, error) { username := params.Args["username"].(string) password := params.Args["password"].(string) token, err := authentication.RegisterUser(username, password) if err != nil { return nil, err } return token, nil }, }, "loginUser": &graphql.Field{ Type: UserType, Description: "Login user", Args: graphql.FieldConfigArgument{ "username": &graphql.ArgumentConfig{ Type: graphql.String, }, "password": &graphql.ArgumentConfig{ Type: graphql.String, }, }, Resolve: func(params graphql.ResolveParams) (interface{}, error) { username := params.Args["username"].(string) password := params.Args["password"].(string) token, err := authentication.LoginUser(username, password) if err != nil { return nil, err } return token, nil }, }, "createSheet": &graphql.Field{ Type: SheetType, Description: "Creates a sheet along with segments and attaches it to a user", Args: graphql.FieldConfigArgument{ "name": &graphql.ArgumentConfig{ Type: graphql.String, }, "segments": &graphql.ArgumentConfig{ Type: graphql.NewList(InputObjectSegmentType), }, }, Resolve: func(params graphql.ResolveParams) (interface{}, error) { jwt := params.Context.Value("jwt").(string) _, err := server.ValidateJWT(jwt) if err != nil { return nil, err } claims, err := server.ParseToken(jwt) name, _ := params.Args["name"].(string) userID := int(claims["id"].(float64)) segments, _ := params.Args["segments"].([]interface{}) sheet, err := sheets.InsertSheet(name, userID, segments) if err != nil { return nil, err } return sheet, nil }, }, "deleteSheet": &graphql.Field{ Type: SheetType, Description: "Deletes a sheet along with segments", Args: graphql.FieldConfigArgument{ "id": &graphql.ArgumentConfig{ Type: graphql.Int, }, }, Resolve: func(params graphql.ResolveParams) (interface{}, error) { jwt := params.Context.Value("jwt").(string) _, err := server.ValidateJWT(jwt) if err != nil { return nil, err } claims, _ := server.ParseToken(jwt) userID := int(claims["id"].(float64)) sheetID := params.Args["id"].(int) sheet, error := sheets.DeleteSheet(sheetID, userID) if error != nil { return nil, error } return sheet, nil }, }, }, })
View Source
var RootQuery = graphql.NewObject(graphql.ObjectConfig{ Name: "RootQuery", Fields: graphql.Fields{ "users": &graphql.Field{ Type: graphql.NewList(UserType), Description: "Query all users", Resolve: func(params graphql.ResolveParams) (interface{}, error) { res, err := server.RequireAuth( params.Context.Value("jwt").(string), users.QueryUsers, ) if err != nil { return nil, err } return res, nil }, }, "sheet": &graphql.Field{ Type: SheetType, Description: "Query a sheet via its ID", Args: graphql.FieldConfigArgument{ "id": &graphql.ArgumentConfig{ Type: graphql.Int, }, }, Resolve: func(params graphql.ResolveParams) (interface{}, error) { _, err := server.ValidateJWT(params.Context.Value("jwt").(string)) if err != nil { return nil, err } sheetID, _ := params.Args["id"].(int) sheet, err := sheets.QuerySheet(sheetID) if err != nil { return nil, err } return sheet, nil }, }, "sheets": &graphql.Field{ Type: graphql.NewList(SheetType), Description: "Query all sheets", Resolve: func(params graphql.ResolveParams) (interface{}, error) { res, err := server.RequireAuth( params.Context.Value("jwt").(string), sheets.QuerySheets, ) if err != nil { return nil, err } return res, err }, }, }, })
View Source
var SegmentType = graphql.NewObject(graphql.ObjectConfig{ Name: "Segment", Fields: graphql.Fields{ "id": &graphql.Field{ Type: graphql.Int, }, "sheetId": &graphql.Field{ Type: graphql.Int, }, "label": &graphql.Field{ Type: graphql.String, }, "content": &graphql.Field{ Type: graphql.String, }, "createdAt": &graphql.Field{ Type: graphql.String, }, }, })
View Source
var SheetType = graphql.NewObject(graphql.ObjectConfig{ Name: "Sheet", Fields: graphql.Fields{ "id": &graphql.Field{ Type: graphql.Int, }, "userId": &graphql.Field{ Type: graphql.Int, }, "name": &graphql.Field{ Type: graphql.String, }, "createdAt": &graphql.Field{ Type: graphql.String, }, "segments": &graphql.Field{ Type: graphql.NewList(SegmentType), Description: "Query all segments related to a sheet", Resolve: func(params graphql.ResolveParams) (interface{}, error) { sheetID := params.Source.(model.Sheet).ID res, err := segments.QuerySegments(sheetID) if err != nil { return nil, err } return res, err }, }, "user": &graphql.Field{ Type: UserType, Description: "Query the user related to a sheet", Resolve: func(params graphql.ResolveParams) (interface{}, error) { userID := params.Source.(model.Sheet).UserID res, err := users.QueryUserById(userID) if err != nil { return nil, err } return res, err }, }, }, })
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.