@@ -35,7 +35,7 @@ class UserData(BaseModel):
3535
3636class APIKeyData (BaseModel ):
3737 organization_name : str
38- user_id : str
38+ user_email : EmailStr
3939 api_key : str
4040 is_deleted : bool
4141 deleted_at : Optional [str ] = None
@@ -61,9 +61,7 @@ def create_organization(session: Session, org_data_raw: dict) -> Organization:
6161 try :
6262 org_data = OrgData .model_validate (org_data_raw )
6363 logging .info (f"Creating organization: { org_data .name } " )
64- organization = Organization (
65- name = org_data .name , is_active = org_data .is_active
66- )
64+ organization = Organization (name = org_data .name , is_active = org_data .is_active )
6765 session .add (organization )
6866 session .flush () # Ensure ID is assigned
6967 return organization
@@ -79,10 +77,14 @@ def create_project(session: Session, project_data_raw: dict) -> Project:
7977 logging .info (f"Creating project: { project_data .name } " )
8078 # Query organization ID by name
8179 organization = session .exec (
82- select (Organization ).where (Organization .name == project_data .organization_name )
80+ select (Organization ).where (
81+ Organization .name == project_data .organization_name
82+ )
8383 ).first ()
8484 if not organization :
85- raise ValueError (f"Organization '{ project_data .organization_name } ' not found" )
85+ raise ValueError (
86+ f"Organization '{ project_data .organization_name } ' not found"
87+ )
8688 project = Project (
8789 name = project_data .name ,
8890 description = project_data .description ,
@@ -123,17 +125,27 @@ def create_api_key(session: Session, api_key_data_raw: dict) -> APIKey:
123125 """Create an API key from data."""
124126 try :
125127 api_key_data = APIKeyData .model_validate (api_key_data_raw )
126- logging .info (f"Creating API key for user { api_key_data .user_id } " )
128+ logging .info (f"Creating API key for user { api_key_data .user_email } " )
127129 # Query organization ID by name
128130 organization = session .exec (
129- select (Organization ).where (Organization .name == api_key_data .organization_name )
131+ select (Organization ).where (
132+ Organization .name == api_key_data .organization_name
133+ )
130134 ).first ()
131135 if not organization :
132- raise ValueError (f"Organization '{ api_key_data .organization_name } ' not found" )
136+ raise ValueError (
137+ f"Organization '{ api_key_data .organization_name } ' not found"
138+ )
139+ # Query user ID by email
140+ user = session .exec (
141+ select (User ).where (User .email == api_key_data .user_email )
142+ ).first ()
143+ if not user :
144+ raise ValueError (f"User '{ api_key_data .user_email } ' not found" )
133145 encrypted_api_key = encrypt_api_key (api_key_data .api_key )
134146 api_key = APIKey (
135147 organization_id = organization .id ,
136- user_id = uuid . UUID ( api_key_data . user_id ) ,
148+ user_id = user . id ,
137149 key = encrypted_api_key ,
138150 is_deleted = api_key_data .is_deleted ,
139151 deleted_at = api_key_data .deleted_at ,
0 commit comments