Browse Source

Feature: Mobile - Add query, mutation + subscription for organizations.

Florian Liebe 2 years ago
parent
commit
21869bd27a

+ 18 - 0
app/frontend/apps/mobile/modules/organization/graphql/fragments/organizationAttributes.api.ts

@@ -0,0 +1,18 @@
+import * as Types from '../../../../../../shared/graphql/types';
+
+import gql from 'graphql-tag';
+import { ObjectAttributeValuesFragmentDoc } from '../../../../../../shared/graphql/fragments/objectAttributeValues.api';
+export const OrganizationAttributesFragmentDoc = gql`
+    fragment organizationAttributes on Organization {
+  id
+  name
+  shared
+  domain
+  domainAssignment
+  active
+  note
+  objectAttributeValues {
+    ...objectAttributeValues
+  }
+}
+    ${ObjectAttributeValuesFragmentDoc}`;

+ 12 - 0
app/frontend/apps/mobile/modules/organization/graphql/fragments/organizationAttributes.graphql

@@ -0,0 +1,12 @@
+fragment organizationAttributes on Organization {
+  id
+  name
+  shared
+  domain
+  domainAssignment
+  active
+  note
+  objectAttributeValues {
+    ...objectAttributeValues
+  }
+}

+ 26 - 0
app/frontend/apps/mobile/modules/organization/graphql/mutations/update.api.ts

@@ -0,0 +1,26 @@
+import * as Types from '../../../../../../shared/graphql/types';
+
+import gql from 'graphql-tag';
+import { OrganizationAttributesFragmentDoc } from '../fragments/organizationAttributes.api';
+import { ErrorsFragmentDoc } from '../../../../../../shared/graphql/fragments/errors.api';
+import * as VueApolloComposable from '@vue/apollo-composable';
+import * as VueCompositionApi from 'vue';
+export type ReactiveFunction<TParam> = () => TParam;
+
+export const OrganizationUpdateDocument = gql`
+    mutation organizationUpdate($id: ID!, $input: OrganizationInput!) {
+  organizationUpdate(id: $id, input: $input) {
+    organization {
+      ...organizationAttributes
+    }
+    errors {
+      ...errors
+    }
+  }
+}
+    ${OrganizationAttributesFragmentDoc}
+${ErrorsFragmentDoc}`;
+export function useOrganizationUpdateMutation(options: VueApolloComposable.UseMutationOptions<Types.OrganizationUpdateMutation, Types.OrganizationUpdateMutationVariables> | ReactiveFunction<VueApolloComposable.UseMutationOptions<Types.OrganizationUpdateMutation, Types.OrganizationUpdateMutationVariables>>) {
+  return VueApolloComposable.useMutation<Types.OrganizationUpdateMutation, Types.OrganizationUpdateMutationVariables>(OrganizationUpdateDocument, options);
+}
+export type OrganizationUpdateMutationCompositionFunctionResult = VueApolloComposable.UseMutationReturn<Types.OrganizationUpdateMutation, Types.OrganizationUpdateMutationVariables>;

+ 10 - 0
app/frontend/apps/mobile/modules/organization/graphql/mutations/update.graphql

@@ -0,0 +1,10 @@
+mutation organizationUpdate($id: ID!, $input: OrganizationInput!) {
+  organizationUpdate(id: $id, input: $input) {
+    organization {
+      ...organizationAttributes
+    }
+    errors {
+      ...errors
+    }
+  }
+}

+ 22 - 0
app/frontend/apps/mobile/modules/organization/graphql/queries/organization.api.ts

@@ -0,0 +1,22 @@
+import * as Types from '../../../../../../shared/graphql/types';
+
+import gql from 'graphql-tag';
+import { OrganizationAttributesFragmentDoc } from '../fragments/organizationAttributes.api';
+import * as VueApolloComposable from '@vue/apollo-composable';
+import * as VueCompositionApi from 'vue';
+export type ReactiveFunction<TParam> = () => TParam;
+
+export const OrganizationDocument = gql`
+    query organization($organizationId: ID!) {
+  organization(organizationId: $organizationId) {
+    ...organizationAttributes
+  }
+}
+    ${OrganizationAttributesFragmentDoc}`;
+export function useOrganizationQuery(variables: Types.OrganizationQueryVariables | VueCompositionApi.Ref<Types.OrganizationQueryVariables> | ReactiveFunction<Types.OrganizationQueryVariables>, options: VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables> | VueCompositionApi.Ref<VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables>> | ReactiveFunction<VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables>> = {}) {
+  return VueApolloComposable.useQuery<Types.OrganizationQuery, Types.OrganizationQueryVariables>(OrganizationDocument, variables, options);
+}
+export function useOrganizationLazyQuery(variables: Types.OrganizationQueryVariables | VueCompositionApi.Ref<Types.OrganizationQueryVariables> | ReactiveFunction<Types.OrganizationQueryVariables>, options: VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables> | VueCompositionApi.Ref<VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables>> | ReactiveFunction<VueApolloComposable.UseQueryOptions<Types.OrganizationQuery, Types.OrganizationQueryVariables>> = {}) {
+  return VueApolloComposable.useLazyQuery<Types.OrganizationQuery, Types.OrganizationQueryVariables>(OrganizationDocument, variables, options);
+}
+export type OrganizationQueryCompositionFunctionResult = VueApolloComposable.UseQueryReturn<Types.OrganizationQuery, Types.OrganizationQueryVariables>;

+ 5 - 0
app/frontend/apps/mobile/modules/organization/graphql/queries/organization.graphql

@@ -0,0 +1,5 @@
+query organization($organizationId: ID!) {
+  organization(organizationId: $organizationId) {
+    ...organizationAttributes
+  }
+}

+ 21 - 0
app/frontend/apps/mobile/modules/organization/graphql/subscriptions/organizationUpdates.api.ts

@@ -0,0 +1,21 @@
+import * as Types from '../../../../../../shared/graphql/types';
+
+import gql from 'graphql-tag';
+import { OrganizationAttributesFragmentDoc } from '../fragments/organizationAttributes.api';
+import * as VueApolloComposable from '@vue/apollo-composable';
+import * as VueCompositionApi from 'vue';
+export type ReactiveFunction<TParam> = () => TParam;
+
+export const OrganizationUpdatesDocument = gql`
+    subscription organizationUpdates($organizationId: ID!) {
+  organizationUpdates(organizationId: $organizationId) {
+    organization {
+      ...organizationAttributes
+    }
+  }
+}
+    ${OrganizationAttributesFragmentDoc}`;
+export function useOrganizationUpdatesSubscription(variables: Types.OrganizationUpdatesSubscriptionVariables | VueCompositionApi.Ref<Types.OrganizationUpdatesSubscriptionVariables> | ReactiveFunction<Types.OrganizationUpdatesSubscriptionVariables>, options: VueApolloComposable.UseSubscriptionOptions<Types.OrganizationUpdatesSubscription, Types.OrganizationUpdatesSubscriptionVariables> | VueCompositionApi.Ref<VueApolloComposable.UseSubscriptionOptions<Types.OrganizationUpdatesSubscription, Types.OrganizationUpdatesSubscriptionVariables>> | ReactiveFunction<VueApolloComposable.UseSubscriptionOptions<Types.OrganizationUpdatesSubscription, Types.OrganizationUpdatesSubscriptionVariables>> = {}) {
+  return VueApolloComposable.useSubscription<Types.OrganizationUpdatesSubscription, Types.OrganizationUpdatesSubscriptionVariables>(OrganizationUpdatesDocument, variables, options);
+}
+export type OrganizationUpdatesSubscriptionCompositionFunctionResult = VueApolloComposable.UseSubscriptionReturn<Types.OrganizationUpdatesSubscription, Types.OrganizationUpdatesSubscriptionVariables>;

+ 7 - 0
app/frontend/apps/mobile/modules/organization/graphql/subscriptions/organizationUpdates.graphql

@@ -0,0 +1,7 @@
+subscription organizationUpdates($organizationId: ID!) {
+  organizationUpdates(organizationId: $organizationId) {
+    organization {
+      ...organizationAttributes
+    }
+  }
+}

+ 100 - 9
app/frontend/shared/graphql/types.ts

@@ -273,6 +273,8 @@ export type Mutations = {
   login?: Maybe<LoginPayload>;
   /** End the current session */
   logout?: Maybe<LogoutPayload>;
+  /** Update organization data. */
+  organizationUpdate?: Maybe<OrganizationUpdatePayload>;
 };
 
 
@@ -313,6 +315,13 @@ export type MutationsLoginArgs = {
   input: LoginInput;
 };
 
+
+/** All available mutations */
+export type MutationsOrganizationUpdateArgs = {
+  id: Scalars['ID'];
+  input: OrganizationInput;
+};
+
 /** An object with an ID. */
 export type Node = {
   /** ID of the object. */
@@ -325,7 +334,15 @@ export type ObjectAttributeValue = {
   /** The object attribute record */
   attribute: ObjectManagerAttribute;
   /** The value of the current object's object attribute */
-  value?: Maybe<Scalars['String']>;
+  value?: Maybe<Scalars['JSON']>;
+};
+
+/** Data of one object attribute value of another object */
+export type ObjectAttributeValueInput = {
+  /** The name of the current object's attribute */
+  name: Scalars['String'];
+  /** The value of the current object's object attribute */
+  value?: InputMaybe<Scalars['JSON']>;
 };
 
 /** Custom object fields (only editable & active) */
@@ -388,6 +405,40 @@ export type OrganizationMembersArgs = {
   last?: InputMaybe<Scalars['Int']>;
 };
 
+/** The organization insert/update fields. */
+export type OrganizationInput = {
+  /** The organization active flag */
+  active?: InputMaybe<Scalars['Boolean']>;
+  /** The organization domain */
+  domain?: InputMaybe<Scalars['String']>;
+  /** The organization domain assignment flag */
+  domainAssignment?: InputMaybe<Scalars['Boolean']>;
+  /** The organization name */
+  name?: InputMaybe<Scalars['String']>;
+  /** The organization note */
+  note?: InputMaybe<Scalars['String']>;
+  /** Additional custom attributes (names + values) */
+  objectAttributeValues?: InputMaybe<Array<ObjectAttributeValueInput>>;
+  /** The organization shared flag */
+  shared?: InputMaybe<Scalars['Boolean']>;
+};
+
+/** Autogenerated return type of OrganizationUpdate */
+export type OrganizationUpdatePayload = {
+  __typename?: 'OrganizationUpdatePayload';
+  /** Errors encountered during execution of the mutation. */
+  errors?: Maybe<Array<UserError>>;
+  /** The updated organization. */
+  organization: Organization;
+};
+
+/** Autogenerated return type of OrganizationUpdates */
+export type OrganizationUpdatesPayload = {
+  __typename?: 'OrganizationUpdatesPayload';
+  /** Updated organization */
+  organization?: Maybe<Organization>;
+};
+
 /** Ticket overviews */
 export type Overview = Node & {
   __typename?: 'Overview';
@@ -477,6 +528,8 @@ export type Queries = {
   node?: Maybe<Node>;
   /** Fetches a list of objects given a list of IDs. */
   nodes: Array<Maybe<Node>>;
+  /** Fetch an organization by ID */
+  organization: Organization;
   /** Generic object search */
   search: Array<SearchResult>;
   /** The sessionId of the currently authenticated user. */
@@ -525,6 +578,12 @@ export type QueriesNodesArgs = {
 };
 
 
+/** All available queries */
+export type QueriesOrganizationArgs = {
+  organizationId: Scalars['ID'];
+};
+
+
 /** All available queries */
 export type QueriesSearchArgs = {
   limit?: InputMaybe<Scalars['Int']>;
@@ -609,6 +668,8 @@ export type Subscriptions = {
   appMaintenance: AppMaintenancePayload;
   /** Updates to configuration settings */
   configUpdates: ConfigUpdatesPayload;
+  /** Updates to organization records */
+  organizationUpdates: OrganizationUpdatesPayload;
   /** Broadcast messages to all users */
   pushMessages: PushMessagesPayload;
   /** Updates to ticket records */
@@ -618,6 +679,12 @@ export type Subscriptions = {
 };
 
 
+/** All available subscriptions */
+export type SubscriptionsOrganizationUpdatesArgs = {
+  organizationId: Scalars['ID'];
+};
+
+
 /** All available subscriptions */
 export type SubscriptionsTicketUpdatesArgs = {
   ticketId: Scalars['ID'];
@@ -979,6 +1046,30 @@ export type AccountLocaleMutationVariables = Exact<{
 
 export type AccountLocaleMutation = { __typename?: 'Mutations', accountLocale?: { __typename?: 'AccountLocalePayload', success: boolean, errors?: Array<{ __typename?: 'UserError', message: string, field?: string | null }> | null } | null };
 
+export type OrganizationAttributesFragment = { __typename?: 'Organization', id: string, name: string, shared: boolean, domain?: string | null, domainAssignment: boolean, active: boolean, note?: string | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> };
+
+export type OrganizationUpdateMutationVariables = Exact<{
+  id: Scalars['ID'];
+  input: OrganizationInput;
+}>;
+
+
+export type OrganizationUpdateMutation = { __typename?: 'Mutations', organizationUpdate?: { __typename?: 'OrganizationUpdatePayload', organization: { __typename?: 'Organization', id: string, name: string, shared: boolean, domain?: string | null, domainAssignment: boolean, active: boolean, note?: string | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> }, errors?: Array<{ __typename?: 'UserError', message: string, field?: string | null }> | null } | null };
+
+export type OrganizationQueryVariables = Exact<{
+  organizationId: Scalars['ID'];
+}>;
+
+
+export type OrganizationQuery = { __typename?: 'Queries', organization: { __typename?: 'Organization', id: string, name: string, shared: boolean, domain?: string | null, domainAssignment: boolean, active: boolean, note?: string | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } };
+
+export type OrganizationUpdatesSubscriptionVariables = Exact<{
+  organizationId: Scalars['ID'];
+}>;
+
+
+export type OrganizationUpdatesSubscription = { __typename?: 'Subscriptions', organizationUpdates: { __typename?: 'OrganizationUpdatesPayload', organization?: { __typename?: 'Organization', id: string, name: string, shared: boolean, domain?: string | null, domainAssignment: boolean, active: boolean, note?: string | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null } };
+
 export type SearchQueryVariables = Exact<{
   search: Scalars['String'];
   isAgent: Scalars['Boolean'];
@@ -1001,7 +1092,7 @@ export type TicketQueryVariables = Exact<{
 }>;
 
 
-export type TicketQuery = { __typename?: 'Queries', ticket: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, articles?: { __typename?: 'TicketArticleConnection', edges: Array<{ __typename?: 'TicketArticleEdge', node: { __typename?: 'TicketArticle', id: string, internal: boolean, body: string, createdAt: any, subject?: string | null, createdBy: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, sender?: { __typename?: 'TicketArticleType', name?: string | null } | null, to?: { __typename?: 'AddressesField', raw: string, parsed?: Array<{ __typename?: 'EmailAddress', name?: string | null, emailAddress?: string | null }> | null } | null } }> }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, defaultCreate: boolean, uiColor?: string | null } } };
+export type TicketQuery = { __typename?: 'Queries', ticket: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, articles?: { __typename?: 'TicketArticleConnection', edges: Array<{ __typename?: 'TicketArticleEdge', node: { __typename?: 'TicketArticle', id: string, internal: boolean, body: string, createdAt: any, subject?: string | null, createdBy: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, sender?: { __typename?: 'TicketArticleType', name?: string | null } | null, to?: { __typename?: 'AddressesField', raw: string, parsed?: Array<{ __typename?: 'EmailAddress', name?: string | null, emailAddress?: string | null }> | null } | null } }> }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, defaultCreate: boolean, uiColor?: string | null } } };
 
 export type TicketArticlesQueryVariables = Exact<{
   ticketId?: InputMaybe<Scalars['ID']>;
@@ -1023,7 +1114,7 @@ export type TicketsByOverviewQueryVariables = Exact<{
 }>;
 
 
-export type TicketsByOverviewQuery = { __typename?: 'Queries', ticketsByOverview: { __typename?: 'TicketConnection', totalCount: number, edges: Array<{ __typename?: 'TicketEdge', cursor: string, node: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', id: string, name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, uiColor?: string | null, defaultCreate: boolean }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean } } };
+export type TicketsByOverviewQuery = { __typename?: 'Queries', ticketsByOverview: { __typename?: 'TicketConnection', totalCount: number, edges: Array<{ __typename?: 'TicketEdge', cursor: string, node: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', id: string, name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, uiColor?: string | null, defaultCreate: boolean }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean } } };
 
 export type TicketUpdatesSubscriptionVariables = Exact<{
   ticketId: Scalars['ID'];
@@ -1032,7 +1123,7 @@ export type TicketUpdatesSubscriptionVariables = Exact<{
 }>;
 
 
-export type TicketUpdatesSubscription = { __typename?: 'Subscriptions', ticketUpdates: { __typename?: 'TicketUpdatesPayload', ticket?: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, articles?: { __typename?: 'TicketArticleConnection', edges: Array<{ __typename?: 'TicketArticleEdge', node: { __typename?: 'TicketArticle', id: string, internal: boolean, body: string, createdAt: any, subject?: string | null, createdBy: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, sender?: { __typename?: 'TicketArticleType', name?: string | null } | null, to?: { __typename?: 'AddressesField', raw: string, parsed?: Array<{ __typename?: 'EmailAddress', name?: string | null, emailAddress?: string | null }> | null } | null } }> }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, defaultCreate: boolean, uiColor?: string | null } } | null } };
+export type TicketUpdatesSubscription = { __typename?: 'Subscriptions', ticketUpdates: { __typename?: 'TicketUpdatesPayload', ticket?: { __typename?: 'Ticket', id: string, internalId: number, number: string, title: string, createdAt: any, updatedAt: any, articles?: { __typename?: 'TicketArticleConnection', edges: Array<{ __typename?: 'TicketArticleEdge', node: { __typename?: 'TicketArticle', id: string, internal: boolean, body: string, createdAt: any, subject?: string | null, createdBy: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, sender?: { __typename?: 'TicketArticleType', name?: string | null } | null, to?: { __typename?: 'AddressesField', raw: string, parsed?: Array<{ __typename?: 'EmailAddress', name?: string | null, emailAddress?: string | null }> | null } | null } }> }, objectAttributeValues?: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, owner: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null }, customer: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null }, organization?: { __typename?: 'Organization', name: string } | null, state: { __typename?: 'TicketState', id: string, name: string, stateType: { __typename?: 'TicketStateType', name: string } }, group: { __typename?: 'Group', id: string, name: string }, priority: { __typename?: 'TicketPriority', id: string, name: string, defaultCreate: boolean, uiColor?: string | null } } | null } };
 
 export type FormUploadCacheAddMutationVariables = Exact<{
   formId: Scalars['FormId'];
@@ -1064,11 +1155,11 @@ export type TicketOverviewsQueryVariables = Exact<{
 
 export type TicketOverviewsQuery = { __typename?: 'Queries', ticketOverviews: { __typename?: 'OverviewConnection', edges: Array<{ __typename?: 'OverviewEdge', cursor: string, node: { __typename?: 'Overview', id: string, name: string, link: string, prio: number, orderBy: string, orderDirection: EnumOrderDirection, active: boolean, ticketCount?: number, viewColumns: Array<{ __typename?: 'KeyValue', key: string, value?: string | null }>, orderColumns: Array<{ __typename?: 'KeyValue', key: string, value?: string | null }> } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean } } };
 
-export type CurrentUserAttributesFragment = { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null };
+export type CurrentUserAttributesFragment = { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null };
 
 export type ErrorsFragment = { __typename?: 'UserError', message: string, field?: string | null };
 
-export type ObjectAttributeValuesFragment = { __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } };
+export type ObjectAttributeValuesFragment = { __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } };
 
 export type LoginMutationVariables = Exact<{
   input: LoginInput;
@@ -1103,7 +1194,7 @@ export type AutocompleteSearchUserQuery = { __typename?: 'Queries', autocomplete
 export type CurrentUserQueryVariables = Exact<{ [key: string]: never; }>;
 
 
-export type CurrentUserQuery = { __typename?: 'Queries', currentUser: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null } };
+export type CurrentUserQuery = { __typename?: 'Queries', currentUser: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null } };
 
 export type LocalesQueryVariables = Exact<{
   onlyActive?: InputMaybe<Scalars['Boolean']>;
@@ -1140,7 +1231,7 @@ export type CurrentUserUpdatesSubscriptionVariables = Exact<{
 }>;
 
 
-export type CurrentUserUpdatesSubscription = { __typename?: 'Subscriptions', userUpdates: { __typename?: 'UserUpdatesPayload', user?: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null } | null } };
+export type CurrentUserUpdatesSubscription = { __typename?: 'Subscriptions', userUpdates: { __typename?: 'UserUpdatesPayload', user?: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, image?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null, permissions?: { __typename?: 'UserPermission', names: Array<string> } | null } | null } };
 
 export type PushMessagesSubscriptionVariables = Exact<{ [key: string]: never; }>;
 
@@ -1152,4 +1243,4 @@ export type UserUpdatesSubscriptionVariables = Exact<{
 }>;
 
 
-export type UserUpdatesSubscription = { __typename?: 'Subscriptions', userUpdates: { __typename?: 'UserUpdatesPayload', user?: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: string | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null } | null } };
+export type UserUpdatesSubscription = { __typename?: 'Subscriptions', userUpdates: { __typename?: 'UserUpdatesPayload', user?: { __typename?: 'User', id: string, firstname?: string | null, lastname?: string | null, fullname?: string | null, preferences?: any | null, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }>, organization?: { __typename?: 'Organization', name: string, objectAttributeValues: Array<{ __typename?: 'ObjectAttributeValue', value?: any | null, attribute: { __typename?: 'ObjectManagerAttribute', name: string, display: string, dataType: string, dataOption?: any | null, screens?: any | null, editable: boolean, active: boolean } }> } | null } | null } };

+ 1 - 1
app/graphql/gql/concern/handles_authorization.rb → app/graphql/gql/concerns/handles_authorization.rb

@@ -1,6 +1,6 @@
 # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
 
-module Gql::Concern::HandlesAuthorization
+module Gql::Concerns::HandlesAuthorization
   extend ActiveSupport::Concern
 
   included do

Some files were not shown because too many files changed in this diff