Jelajahi Sumber

[native] Do not even read the content of "AddJobMessage"

jherve 1 tahun lalu
induk
melakukan
98f5493b36
2 mengubah file dengan 12 tambahan dan 29 penghapusan
  1. 8 25
      native/src/job_search/messages.py
  2. 4 4
      native/src/job_search/writer.py

+ 8 - 25
native/src/job_search/messages.py

@@ -1,13 +1,6 @@
-import re
-from datetime import date
 from dataclasses import dataclass, asdict
 from enum import Enum
-from typing import Optional, Any
-from job_search.job_storage import (
-    ApplicationProcess,
-    JobOfferOrigin,
-    Flexibility,
-)
+from typing import Any
 
 
 def to_snake_case(string):
@@ -40,7 +33,7 @@ class BackgroundScriptMessage(Message):
             case "NativeMessageInitialConfiguration":
                 return InitialConfigurationMessage(**values)
             case "NativeMessageAddJob":
-                return AddJobMessage(**values)
+                return AddJobMessage(values=values)
             case "NativeMessageListJobsRequest":
                 return ListJobsRequestMessage(**values)
             case _:
@@ -54,24 +47,14 @@ class NativeMessage(Message):
 
 @dataclass
 class AddJobMessage(BackgroundScriptMessage):
-    id: str
-    origin: str
-    title: str
-    url: str
-    company: str
-    location: Optional[str] = None
-    company_domain: Optional[str] = None
-    company_url: Optional[str] = None
-    flexibility: Optional[Flexibility] = None
-    alternate_url: Optional[str] = None
-    comment: Optional[str] = None
-    application_process: Optional[ApplicationProcess] = None
-    application_considered: Optional[bool] = None
-    application_date: Optional[str] = None
-    application_rejection_date: Optional[str] = None
+    """
+    Only for this message we trust the frontend to send data in an appropriate
+    format.
+    """
+    values: dict
 
     def serialize(self):
-        return {"tag": "NativeMessageAddJob", "values": [asdict(self)]}
+        return {"tag": "NativeMessageAddJob", "values": [self.values]}
 
 
 @dataclass

+ 4 - 4
native/src/job_search/writer.py

@@ -28,12 +28,12 @@ class Application:
 
     def handle_message(self, message: Message):
         match message:
-            case AddJobMessage():
+            case AddJobMessage(values=values):
                 try:
-                    self.job_storage.insert_record("job_offer", asdict(message))
-                    self.read_writer.send_message(JobAddedMessage(message.id))
+                    self.job_storage.insert_record("job_offer", values)
+                    self.read_writer.send_message(JobAddedMessage(values["id"]))
                 except FileExistsError as e:
-                    self.read_writer.send_message(JobAlreadyExistsMessage(message.id))
+                    self.read_writer.send_message(JobAlreadyExistsMessage(values["id"]))
 
             case ListJobsRequestMessage():
                 offers = list(self.job_storage.read_all().values())