Skip to content

Commit c6f5fec

Browse files
New navigator actions
1 parent e3dba1a commit c6f5fec

31 files changed

Lines changed: 1132 additions & 3 deletions

‎linkedapi/__init__.py‎

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,32 @@
4848
FetchPostMapper,
4949
IgnoreInvitation,
5050
ManageConversation,
51+
NvCreateList,
52+
NvCreateSavedSearch,
53+
NvDeleteList,
54+
NvDeleteSavedSearch,
5155
NvFetchCompany,
5256
NvFetchCompanyMapper,
5357
NvFetchPerson,
5458
NvFetchPersonMapper,
5559
NvManageConversation,
60+
NvRemoveAccountFromList,
61+
NvRemoveLeadFromList,
62+
NvRenameList,
5663
NvRetrieveAlerts,
64+
NvRetrieveListAccounts,
65+
NvRetrieveListLeads,
66+
NvRetrieveLists,
67+
NvRetrieveSavedSearches,
68+
NvSaveAccount,
69+
NvSaveLead,
5770
NvSearchCompanies,
5871
NvSearchPeople,
5972
NvSendMessage,
6073
NvSyncConversation,
6174
NvSyncInbox,
75+
NvUnsaveAccount,
76+
NvUnsaveLead,
6277
ReactToComment,
6378
ReactToPost,
6479
RemoveConnection,
@@ -90,7 +105,7 @@
90105
verify_webhook_signature,
91106
)
92107

93-
__version__ = "1.4.10"
108+
__version__ = "1.4.11"
94109
PredefinedOperation = Operation
95110

96111
__all__ = [
@@ -139,6 +154,21 @@
139154
"NvFetchPersonMapper",
140155
"NvManageConversation",
141156
"NvRetrieveAlerts",
157+
"NvRetrieveLists",
158+
"NvDeleteList",
159+
"NvCreateList",
160+
"NvDeleteSavedSearch",
161+
"NvCreateSavedSearch",
162+
"NvRetrieveSavedSearches",
163+
"NvRenameList",
164+
"NvRemoveAccountFromList",
165+
"NvRemoveLeadFromList",
166+
"NvRetrieveListAccounts",
167+
"NvRetrieveListLeads",
168+
"NvUnsaveAccount",
169+
"NvSaveAccount",
170+
"NvUnsaveLead",
171+
"NvSaveLead",
142172
"NvSearchCompanies",
143173
"NvSearchPeople",
144174
"NvSendMessage",

‎linkedapi/client.py‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,30 @@
2222
FetchPost,
2323
IgnoreInvitation,
2424
ManageConversation,
25+
NvCreateList,
26+
NvCreateSavedSearch,
27+
NvDeleteList,
28+
NvDeleteSavedSearch,
2529
NvFetchCompany,
2630
NvFetchPerson,
2731
NvManageConversation,
32+
NvRemoveAccountFromList,
33+
NvRemoveLeadFromList,
34+
NvRenameList,
2835
NvRetrieveAlerts,
36+
NvRetrieveListAccounts,
37+
NvRetrieveListLeads,
38+
NvRetrieveLists,
39+
NvRetrieveSavedSearches,
40+
NvSaveAccount,
41+
NvSaveLead,
2942
NvSearchCompanies,
3043
NvSearchPeople,
3144
NvSendMessage,
3245
NvSyncConversation,
3346
NvSyncInbox,
47+
NvUnsaveAccount,
48+
NvUnsaveLead,
3449
ReactToComment,
3550
ReactToPost,
3651
RemoveConnection,
@@ -116,6 +131,21 @@ def __init__(self, config: LinkedApiConfig | HttpClient[Any]) -> None:
116131
self.nv_sync_inbox = NvSyncInbox(self.http_client)
117132
self.nv_manage_conversation = NvManageConversation(self.http_client)
118133
self.nv_retrieve_alerts = NvRetrieveAlerts(self.http_client)
134+
self.nv_retrieve_lists = NvRetrieveLists(self.http_client)
135+
self.nv_delete_list = NvDeleteList(self.http_client)
136+
self.nv_create_list = NvCreateList(self.http_client)
137+
self.nv_delete_saved_search = NvDeleteSavedSearch(self.http_client)
138+
self.nv_create_saved_search = NvCreateSavedSearch(self.http_client)
139+
self.nv_retrieve_saved_searches = NvRetrieveSavedSearches(self.http_client)
140+
self.nv_rename_list = NvRenameList(self.http_client)
141+
self.nv_remove_account_from_list = NvRemoveAccountFromList(self.http_client)
142+
self.nv_remove_lead_from_list = NvRemoveLeadFromList(self.http_client)
143+
self.nv_retrieve_list_accounts = NvRetrieveListAccounts(self.http_client)
144+
self.nv_retrieve_list_leads = NvRetrieveListLeads(self.http_client)
145+
self.nv_unsave_account = NvUnsaveAccount(self.http_client)
146+
self.nv_save_account = NvSaveAccount(self.http_client)
147+
self.nv_unsave_lead = NvUnsaveLead(self.http_client)
148+
self.nv_save_lead = NvSaveLead(self.http_client)
119149
self.nv_search_companies = NvSearchCompanies(self.http_client)
120150
self.nv_search_people = NvSearchPeople(self.http_client)
121151
self.nv_fetch_company = NvFetchCompany(self.http_client)
@@ -162,6 +192,21 @@ def __init__(self, config: LinkedApiConfig | HttpClient[Any]) -> None:
162192
self.nv_sync_inbox,
163193
self.nv_manage_conversation,
164194
self.nv_retrieve_alerts,
195+
self.nv_retrieve_lists,
196+
self.nv_delete_list,
197+
self.nv_create_list,
198+
self.nv_delete_saved_search,
199+
self.nv_create_saved_search,
200+
self.nv_retrieve_saved_searches,
201+
self.nv_rename_list,
202+
self.nv_remove_account_from_list,
203+
self.nv_remove_lead_from_list,
204+
self.nv_retrieve_list_accounts,
205+
self.nv_retrieve_list_leads,
206+
self.nv_unsave_account,
207+
self.nv_save_account,
208+
self.nv_unsave_lead,
209+
self.nv_save_lead,
165210
self.nv_search_companies,
166211
self.nv_search_people,
167212
self.nv_fetch_company,

‎linkedapi/errors.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
"searchTemporarilyUnavailable",
2727
"filterNotApplied",
2828
"companyNotFound",
29+
"listNotFound",
30+
"listAlreadyExists",
31+
"listNotDeletable",
32+
"listNotRenamable",
33+
"savedSearchNotFound",
34+
"interfaceLanguageNotSupported",
2935
"postNotFound",
3036
"jobNotFound",
3137
"commentingNotAllowed",
@@ -75,6 +81,12 @@
7581
"searchTemporarilyUnavailable",
7682
"filterNotApplied",
7783
"companyNotFound",
84+
"listNotFound",
85+
"listAlreadyExists",
86+
"listNotDeletable",
87+
"listNotRenamable",
88+
"savedSearchNotFound",
89+
"interfaceLanguageNotSupported",
7890
"postNotFound",
7991
"jobNotFound",
8092
"commentingNotAllowed",

‎linkedapi/operations/__init__.py‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,30 @@
1212
from linkedapi.operations.fetch_post import FetchPost, FetchPostMapper
1313
from linkedapi.operations.ignore_invitation import IgnoreInvitation
1414
from linkedapi.operations.manage_conversation import ManageConversation
15+
from linkedapi.operations.nv_create_list import NvCreateList
16+
from linkedapi.operations.nv_create_saved_search import NvCreateSavedSearch
17+
from linkedapi.operations.nv_delete_list import NvDeleteList
18+
from linkedapi.operations.nv_delete_saved_search import NvDeleteSavedSearch
1519
from linkedapi.operations.nv_fetch_company import NvFetchCompany, NvFetchCompanyMapper
1620
from linkedapi.operations.nv_fetch_person import NvFetchPerson, NvFetchPersonMapper
1721
from linkedapi.operations.nv_manage_conversation import NvManageConversation
22+
from linkedapi.operations.nv_remove_account_from_list import NvRemoveAccountFromList
23+
from linkedapi.operations.nv_remove_lead_from_list import NvRemoveLeadFromList
24+
from linkedapi.operations.nv_rename_list import NvRenameList
1825
from linkedapi.operations.nv_retrieve_alerts import NvRetrieveAlerts
26+
from linkedapi.operations.nv_retrieve_list_accounts import NvRetrieveListAccounts
27+
from linkedapi.operations.nv_retrieve_list_leads import NvRetrieveListLeads
28+
from linkedapi.operations.nv_retrieve_lists import NvRetrieveLists
29+
from linkedapi.operations.nv_retrieve_saved_searches import NvRetrieveSavedSearches
30+
from linkedapi.operations.nv_save_account import NvSaveAccount
31+
from linkedapi.operations.nv_save_lead import NvSaveLead
1932
from linkedapi.operations.nv_search_companies import NvSearchCompanies
2033
from linkedapi.operations.nv_search_people import NvSearchPeople
2134
from linkedapi.operations.nv_send_message import NvSendMessage
2235
from linkedapi.operations.nv_sync_conversation import NvSyncConversation
2336
from linkedapi.operations.nv_sync_inbox import NvSyncInbox
37+
from linkedapi.operations.nv_unsave_account import NvUnsaveAccount
38+
from linkedapi.operations.nv_unsave_lead import NvUnsaveLead
2439
from linkedapi.operations.react_to_comment import ReactToComment
2540
from linkedapi.operations.react_to_post import ReactToPost
2641
from linkedapi.operations.remove_connection import RemoveConnection
@@ -62,17 +77,32 @@
6277
"FetchPostMapper",
6378
"IgnoreInvitation",
6479
"ManageConversation",
80+
"NvCreateList",
81+
"NvCreateSavedSearch",
82+
"NvDeleteList",
83+
"NvDeleteSavedSearch",
6584
"NvFetchCompany",
6685
"NvFetchCompanyMapper",
6786
"NvFetchPerson",
6887
"NvFetchPersonMapper",
6988
"NvManageConversation",
89+
"NvRemoveAccountFromList",
90+
"NvRemoveLeadFromList",
91+
"NvRenameList",
7092
"NvRetrieveAlerts",
93+
"NvRetrieveListAccounts",
94+
"NvRetrieveListLeads",
95+
"NvRetrieveLists",
96+
"NvRetrieveSavedSearches",
97+
"NvSaveAccount",
98+
"NvSaveLead",
7199
"NvSearchCompanies",
72100
"NvSearchPeople",
73101
"NvSendMessage",
74102
"NvSyncConversation",
75103
"NvSyncInbox",
104+
"NvUnsaveAccount",
105+
"NvUnsaveLead",
76106
"ReactToComment",
77107
"ReactToPost",
78108
"RemoveConnection",
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import SimpleWorkflowMapper
5+
from linkedapi.types import NvCreatedList, NvCreateListParams
6+
7+
8+
class NvCreateList(Operation[NvCreateListParams, NvCreatedList]):
9+
"""Create an owned list, returning its string ID, stored name, type and URL.
10+
11+
Name is trimmed (1-75 characters). Description has surrounding spaces trimmed, at most
12+
350 characters after trimming, and is omitted when blank. Same-type names
13+
equal after trimming, case-sensitive, including system lists, return listAlreadyExists.
14+
"""
15+
16+
operation_name = "nvCreateList"
17+
mapper = SimpleWorkflowMapper[NvCreateListParams, NvCreatedList](
18+
"nv.createList", result_model=NvCreatedList
19+
)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import SimpleWorkflowMapper
5+
from linkedapi.types import NvCreatedSavedSearch, NvCreateSavedSearchParams
6+
7+
8+
class NvCreateSavedSearch(Operation[NvCreateSavedSearchParams, NvCreatedSavedSearch]):
9+
"""Save a Sales Navigator search URL matching the requested type. Returns its id, name,
10+
type and URL. English interface only.
11+
"""
12+
13+
operation_name = "nvCreateSavedSearch"
14+
mapper = SimpleWorkflowMapper[NvCreateSavedSearchParams, NvCreatedSavedSearch](
15+
"nv.createSavedSearch", result_model=NvCreatedSavedSearch
16+
)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import VoidWorkflowMapper
5+
from linkedapi.types import NvDeleteListParams
6+
7+
8+
class NvDeleteList(Operation[NvDeleteListParams, None]):
9+
"""Delete one owned list by string ID, keeping members saved and in their other lists.
10+
11+
Unknown, shared or already-deleted lists return listNotFound. System lists without a
12+
Delete action return listNotDeletable. Success has no result data.
13+
"""
14+
15+
operation_name = "nvDeleteList"
16+
mapper = VoidWorkflowMapper[NvDeleteListParams]("nv.deleteList")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import VoidWorkflowMapper
5+
from linkedapi.types import NvDeleteSavedSearchParams
6+
7+
8+
class NvDeleteSavedSearch(Operation[NvDeleteSavedSearchParams, None]):
9+
"""Delete an owned saved search by its string ID. An absent search returns
10+
savedSearchNotFound. English interface only.
11+
"""
12+
13+
operation_name = "nvDeleteSavedSearch"
14+
mapper = VoidWorkflowMapper[NvDeleteSavedSearchParams]("nv.deleteSavedSearch")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import VoidWorkflowMapper
5+
from linkedapi.types import NvRemoveAccountFromListParams
6+
7+
8+
class NvRemoveAccountFromList(Operation[NvRemoveAccountFromListParams, None]):
9+
"""Remove an account from exactly one owned custom list, keeping it saved even after its
10+
last list. Repeating an absent membership succeeds. English interface only.
11+
"""
12+
13+
operation_name = "nvRemoveAccountFromList"
14+
mapper = VoidWorkflowMapper[NvRemoveAccountFromListParams]("nv.removeAccountFromList")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from __future__ import annotations
2+
3+
from linkedapi.core import Operation
4+
from linkedapi.mappers import VoidWorkflowMapper
5+
from linkedapi.types import NvRemoveLeadFromListParams
6+
7+
8+
class NvRemoveLeadFromList(Operation[NvRemoveLeadFromListParams, None]):
9+
"""Remove a lead from exactly one owned custom list, keeping it saved and in its other
10+
lists. Repeating an absent membership succeeds. English interface only.
11+
"""
12+
13+
operation_name = "nvRemoveLeadFromList"
14+
mapper = VoidWorkflowMapper[NvRemoveLeadFromListParams]("nv.removeLeadFromList")

0 commit comments

Comments
 (0)