Add level position to people

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-05-25 14:47:19 -07:00
parent 20cb74675c
commit 9d07d54a4f
12 changed files with 175 additions and 16 deletions

View File

@@ -529,6 +529,7 @@ type People implements Node {
primaryEmailAddress: String!
additionalEmailAddresses: [String!]!
kind: PeopleKind!
position: String
contractStartDate: Datetime
contractEndDate: Datetime
createdAt: Datetime!
@@ -1154,6 +1155,7 @@ input CreatePeopleInput {
primaryEmailAddress: String!
additionalEmailAddresses: [String!]
kind: PeopleKind!
position: String
contractStartDate: Datetime
contractEndDate: Datetime
}
@@ -1164,6 +1166,7 @@ input UpdatePeopleInput {
primaryEmailAddress: String
additionalEmailAddresses: [String!]
kind: PeopleKind
position: String
contractStartDate: Datetime
contractEndDate: Datetime
}

View File

@@ -425,6 +425,7 @@ type ComplexityRoot struct {
FullName func(childComplexity int) int
ID func(childComplexity int) int
Kind func(childComplexity int) int
Position func(childComplexity int) int
PrimaryEmailAddress func(childComplexity int) int
UpdatedAt func(childComplexity int) int
}
@@ -2595,6 +2596,13 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return e.complexity.People.Kind(childComplexity), true
case "People.position":
if e.complexity.People.Position == nil {
break
}
return e.complexity.People.Position(childComplexity), true
case "People.primaryEmailAddress":
if e.complexity.People.PrimaryEmailAddress == nil {
break
@@ -4580,6 +4588,7 @@ type People implements Node {
primaryEmailAddress: String!
additionalEmailAddresses: [String!]!
kind: PeopleKind!
position: String
contractStartDate: Datetime
contractEndDate: Datetime
createdAt: Datetime!
@@ -5205,6 +5214,7 @@ input CreatePeopleInput {
primaryEmailAddress: String!
additionalEmailAddresses: [String!]
kind: PeopleKind!
position: String
contractStartDate: Datetime
contractEndDate: Datetime
}
@@ -5215,6 +5225,7 @@ input UpdatePeopleInput {
primaryEmailAddress: String
additionalEmailAddresses: [String!]
kind: PeopleKind
position: String
contractStartDate: Datetime
contractEndDate: Datetime
}
@@ -19540,6 +19551,47 @@ func (ec *executionContext) fieldContext_People_kind(_ context.Context, field gr
return fc, nil
}
func (ec *executionContext) _People_position(ctx context.Context, field graphql.CollectedField, obj *types.People) (ret graphql.Marshaler) {
fc, err := ec.fieldContext_People_position(ctx, field)
if err != nil {
return graphql.Null
}
ctx = graphql.WithFieldContext(ctx, fc)
defer func() {
if r := recover(); r != nil {
ec.Error(ctx, ec.Recover(ctx, r))
ret = graphql.Null
}
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
return obj.Position, nil
})
if err != nil {
ec.Error(ctx, err)
return graphql.Null
}
if resTmp == nil {
return graphql.Null
}
res := resTmp.(*string)
fc.Result = res
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
}
func (ec *executionContext) fieldContext_People_position(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
fc = &graphql.FieldContext{
Object: "People",
Field: field,
IsMethod: false,
IsResolver: false,
Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {
return nil, errors.New("field of type String does not have child fields")
},
}
return fc, nil
}
func (ec *executionContext) _People_contractStartDate(ctx context.Context, field graphql.CollectedField, obj *types.People) (ret graphql.Marshaler) {
fc, err := ec.fieldContext_People_contractStartDate(ctx, field)
if err != nil {
@@ -19907,6 +19959,8 @@ func (ec *executionContext) fieldContext_PeopleEdge_node(_ context.Context, fiel
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -20144,6 +20198,8 @@ func (ec *executionContext) fieldContext_Policy_owner(_ context.Context, field g
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -21050,6 +21106,8 @@ func (ec *executionContext) fieldContext_PolicyVersion_publishedBy(_ context.Con
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -21615,6 +21673,8 @@ func (ec *executionContext) fieldContext_PolicyVersionSignature_signedBy(_ conte
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -21764,6 +21824,8 @@ func (ec *executionContext) fieldContext_PolicyVersionSignature_requestedBy(_ co
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -23169,6 +23231,8 @@ func (ec *executionContext) fieldContext_Risk_owner(_ context.Context, field gra
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -24156,6 +24220,8 @@ func (ec *executionContext) fieldContext_Task_assignedTo(_ context.Context, fiel
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -24994,6 +25060,8 @@ func (ec *executionContext) fieldContext_UpdatePeoplePayload_people(_ context.Co
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -25799,6 +25867,8 @@ func (ec *executionContext) fieldContext_User_people(ctx context.Context, field
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -26402,6 +26472,8 @@ func (ec *executionContext) fieldContext_Vendor_businessOwner(_ context.Context,
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -26463,6 +26535,8 @@ func (ec *executionContext) fieldContext_Vendor_securityOwner(_ context.Context,
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -28130,6 +28204,8 @@ func (ec *executionContext) fieldContext_VendorRiskAssessment_assessedBy(_ conte
return ec.fieldContext_People_additionalEmailAddresses(ctx, field)
case "kind":
return ec.fieldContext_People_kind(ctx, field)
case "position":
return ec.fieldContext_People_position(ctx, field)
case "contractStartDate":
return ec.fieldContext_People_contractStartDate(ctx, field)
case "contractEndDate":
@@ -31143,7 +31219,7 @@ func (ec *executionContext) unmarshalInputCreatePeopleInput(ctx context.Context,
asMap[k] = v
}
fieldsInOrder := [...]string{"organizationId", "fullName", "primaryEmailAddress", "additionalEmailAddresses", "kind", "contractStartDate", "contractEndDate"}
fieldsInOrder := [...]string{"organizationId", "fullName", "primaryEmailAddress", "additionalEmailAddresses", "kind", "position", "contractStartDate", "contractEndDate"}
for _, k := range fieldsInOrder {
v, ok := asMap[k]
if !ok {
@@ -31185,6 +31261,13 @@ func (ec *executionContext) unmarshalInputCreatePeopleInput(ctx context.Context,
return it, err
}
it.Kind = data
case "position":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("position"))
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
if err != nil {
return it, err
}
it.Position = data
case "contractStartDate":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("contractStartDate"))
data, err := ec.unmarshalODatetime2ᚖtimeᚐTime(ctx, v)
@@ -32979,7 +33062,7 @@ func (ec *executionContext) unmarshalInputUpdatePeopleInput(ctx context.Context,
asMap[k] = v
}
fieldsInOrder := [...]string{"id", "fullName", "primaryEmailAddress", "additionalEmailAddresses", "kind", "contractStartDate", "contractEndDate"}
fieldsInOrder := [...]string{"id", "fullName", "primaryEmailAddress", "additionalEmailAddresses", "kind", "position", "contractStartDate", "contractEndDate"}
for _, k := range fieldsInOrder {
v, ok := asMap[k]
if !ok {
@@ -33021,6 +33104,13 @@ func (ec *executionContext) unmarshalInputUpdatePeopleInput(ctx context.Context,
return it, err
}
it.Kind = data
case "position":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("position"))
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
if err != nil {
return it, err
}
it.Position = data
case "contractStartDate":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("contractStartDate"))
data, err := ec.unmarshalODatetime2ᚖtimeᚐTime(ctx, v)
@@ -37445,6 +37535,8 @@ func (ec *executionContext) _People(ctx context.Context, sel ast.SelectionSet, o
if out.Values[i] == graphql.Null {
out.Invalids++
}
case "position":
out.Values[i] = ec._People_position(ctx, field, obj)
case "contractStartDate":
out.Values[i] = ec._People_contractStartDate(ctx, field, obj)
case "contractEndDate":

View File

@@ -50,6 +50,7 @@ func NewPeople(p *coredata.People) *People {
PrimaryEmailAddress: p.PrimaryEmailAddress,
AdditionalEmailAddresses: p.AdditionalEmailAddresses,
Kind: p.Kind,
Position: p.Position,
ContractStartDate: p.ContractStartDate,
ContractEndDate: p.ContractEndDate,
CreatedAt: p.CreatedAt,

View File

@@ -164,6 +164,7 @@ type CreatePeopleInput struct {
PrimaryEmailAddress string `json:"primaryEmailAddress"`
AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`
Kind coredata.PeopleKind `json:"kind"`
Position *string `json:"position,omitempty"`
ContractStartDate *time.Time `json:"contractStartDate,omitempty"`
ContractEndDate *time.Time `json:"contractEndDate,omitempty"`
}
@@ -569,6 +570,7 @@ type People struct {
PrimaryEmailAddress string `json:"primaryEmailAddress"`
AdditionalEmailAddresses []string `json:"additionalEmailAddresses"`
Kind coredata.PeopleKind `json:"kind"`
Position *string `json:"position,omitempty"`
ContractStartDate *time.Time `json:"contractStartDate,omitempty"`
ContractEndDate *time.Time `json:"contractEndDate,omitempty"`
CreatedAt time.Time `json:"createdAt"`
@@ -837,6 +839,7 @@ type UpdatePeopleInput struct {
PrimaryEmailAddress *string `json:"primaryEmailAddress,omitempty"`
AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`
Kind *coredata.PeopleKind `json:"kind,omitempty"`
Position *string `json:"position,omitempty"`
ContractStartDate *time.Time `json:"contractStartDate,omitempty"`
ContractEndDate *time.Time `json:"contractEndDate,omitempty"`
}

View File

@@ -424,6 +424,7 @@ func (r *mutationResolver) CreatePeople(ctx context.Context, input types.CreateP
PrimaryEmailAddress: input.PrimaryEmailAddress,
AdditionalEmailAddresses: []string{},
Kind: input.Kind,
Position: input.Position,
ContractStartDate: input.ContractStartDate,
ContractEndDate: input.ContractEndDate,
})
@@ -447,6 +448,7 @@ func (r *mutationResolver) UpdatePeople(ctx context.Context, input types.UpdateP
PrimaryEmailAddress: input.PrimaryEmailAddress,
AdditionalEmailAddresses: &input.AdditionalEmailAddresses,
Kind: input.Kind,
Position: &input.Position,
ContractStartDate: &input.ContractStartDate,
ContractEndDate: &input.ContractEndDate,
})