Skip to content

Commit 886d501

Browse files
Cognition Chat Integration (#181)
* dummy commit, submodule change * creat alembic revision for added db columns * adds mutation for updating language display of the user * submodule update
1 parent cc10831 commit 886d501

File tree

4 files changed

+144
-3
lines changed

4 files changed

+144
-3
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
"""cognition chat integration
2+
3+
Revision ID: 6b7c123b3e52
4+
Revises: f6bca8990840
5+
Create Date: 2024-01-05 12:29:28.774072
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = "6b7c123b3e52"
14+
down_revision = "f6bca8990840"
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.add_column("user", sa.Column("language_display", sa.String(), nullable=True))
22+
op.add_column(
23+
"conversation",
24+
sa.Column("header", sa.String(), nullable=True),
25+
schema="cognition",
26+
)
27+
op.add_column(
28+
"conversation",
29+
sa.Column("error", sa.String(), nullable=True),
30+
schema="cognition",
31+
)
32+
op.add_column(
33+
"message",
34+
sa.Column("selection_widget", sa.ARRAY(sa.JSON()), nullable=True),
35+
schema="cognition",
36+
)
37+
op.add_column(
38+
"message",
39+
sa.Column("feedback_value", sa.String(), nullable=True),
40+
schema="cognition",
41+
)
42+
op.add_column(
43+
"message",
44+
sa.Column("feedback_category", sa.String(), nullable=True),
45+
schema="cognition",
46+
)
47+
op.drop_column("message", "positive_feedback", schema="cognition")
48+
op.add_column(
49+
"pipeline_logs",
50+
sa.Column("skipped_step", sa.Boolean(), nullable=True),
51+
schema="cognition",
52+
)
53+
op.add_column(
54+
"project",
55+
sa.Column("interface_type", sa.String(), nullable=True),
56+
schema="cognition",
57+
)
58+
op.add_column(
59+
"project",
60+
sa.Column(
61+
"execute_query_enrichment_if_source_code", sa.String(), nullable=True
62+
),
63+
schema="cognition",
64+
)
65+
op.add_column(
66+
"project",
67+
sa.Column("customer_color_primary", sa.String(), nullable=True),
68+
schema="cognition",
69+
)
70+
op.add_column(
71+
"project",
72+
sa.Column("customer_color_primary_only_accent", sa.Boolean(), nullable=True),
73+
schema="cognition",
74+
)
75+
op.add_column(
76+
"project",
77+
sa.Column("customer_color_secondary", sa.String(), nullable=True),
78+
schema="cognition",
79+
)
80+
op.add_column(
81+
"strategy_step",
82+
sa.Column("progress_text", sa.String(), nullable=True),
83+
schema="cognition",
84+
)
85+
op.add_column(
86+
"strategy_step",
87+
sa.Column("execute_if_source_code", sa.String(), nullable=True),
88+
schema="cognition",
89+
)
90+
# ### end Alembic commands ###
91+
92+
93+
def downgrade():
94+
# ### commands auto generated by Alembic - please adjust! ###
95+
op.drop_column("strategy_step", "execute_if_source_code", schema="cognition")
96+
op.drop_column("strategy_step", "progress_text", schema="cognition")
97+
op.drop_column("project", "customer_color_secondary", schema="cognition")
98+
op.drop_column("project", "customer_color_primary_only_accent", schema="cognition")
99+
op.drop_column("project", "customer_color_primary", schema="cognition")
100+
op.drop_column(
101+
"project", "execute_query_enrichment_if_source_code", schema="cognition"
102+
)
103+
op.drop_column("project", "interface_type", schema="cognition")
104+
op.drop_column("pipeline_logs", "skipped_step", schema="cognition")
105+
op.add_column(
106+
"message",
107+
sa.Column(
108+
"positive_feedback", sa.BOOLEAN(), autoincrement=False, nullable=True
109+
),
110+
schema="cognition",
111+
)
112+
op.drop_column("message", "feedback_category", schema="cognition")
113+
op.drop_column("message", "feedback_value", schema="cognition")
114+
op.drop_column("message", "selection_widget", schema="cognition")
115+
op.drop_column("conversation", "error", schema="cognition")
116+
op.drop_column("conversation", "header", schema="cognition")
117+
op.drop_column("user", "language_display")
118+
# ### end Alembic commands ###

controller/user/manager.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ def update_user_role(user_id: str, role: str) -> User:
6969
return user_item
7070

7171

72+
def update_user_language_display(user_id: str, language_display: str) -> User:
73+
user_item = user.get(user_id)
74+
if not user_item:
75+
raise ValueError("User not found")
76+
user_item.language_display = language_display
77+
general.commit()
78+
return user_item
79+
80+
7281
def remove_organization_from_user(user_mail: str) -> None:
7382
user_id = kratos.get_userid_from_mail(user_mail)
7483
if user_id is None:

graphql_api/mutation/organization.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
from typing import Any, Dict
22
import graphene
3-
from graphql import GraphQLError
43

54
from controller.auth import manager as auth
65
from controller.misc import config_service
76
from controller.organization import manager as organization_manager
87
from controller.user import manager as user_manager
98
from graphql_api.types import Organization
109
from submodules.model import events
11-
from graphql_api import types
1210
from util import doc_ock
1311

1412

@@ -48,6 +46,21 @@ def mutate(self, info, user_id: str, role: str):
4846
return ChangeUserRole(ok=True)
4947

5048

49+
class ChangeUserLanguageDisplay(graphene.Mutation):
50+
class Arguments:
51+
user_id = graphene.ID()
52+
language_display = graphene.String()
53+
54+
ok = graphene.Boolean()
55+
56+
def mutate(self, info, user_id: str, language_display: str):
57+
auth.check_demo_access(info)
58+
auth.check_admin_access(info)
59+
60+
user_manager.update_user_language_display(user_id, language_display)
61+
return ChangeUserLanguageDisplay(ok=True)
62+
63+
5164
class RemoveUserFromOrganization(graphene.Mutation):
5265
class Arguments:
5366
user_mail = graphene.String()
@@ -109,6 +122,7 @@ class OrganizationMutation(graphene.ObjectType):
109122
add_user_to_organization = AddUserToOrganization.Field()
110123
remove_user_from_organization = RemoveUserFromOrganization.Field()
111124
change_user_role = ChangeUserRole.Field()
125+
change_user_language_display = ChangeUserLanguageDisplay.Field()
112126
create_organization = CreateOrganization.Field()
113127
delete_organization = DeleteOrganization.Field()
114128
change_organization = ChangeOrganization.Field()

0 commit comments

Comments
 (0)