Skip to content

Commit 5ab8bb5

Browse files
committed
forgot to git add
1 parent 4b29767 commit 5ab8bb5

17 files changed

Lines changed: 1102 additions & 3 deletions

examples/example_uma_invites.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
import logging
4+
import os
5+
6+
import lightspark
7+
8+
logger = logging.getLogger("uma_invites")
9+
logger.setLevel(logging.DEBUG)
10+
11+
#################################################################
12+
## MODIFY THOSE VARIABLES BEFORE RUNNING THE EXAMPLE
13+
#################################################################
14+
##
15+
## We defined those variables as environment variables, but if you are just
16+
## running the example locally, feel free to just set the values in Python.
17+
##
18+
19+
api_token_id = os.environ.get("LIGHTSPARK_API_TOKEN_CLIENT_ID")
20+
api_token_secret = os.environ.get("LIGHTSPARK_API_TOKEN_CLIENT_SECRET")
21+
base_url = os.environ.get("LIGHTSPARK_EXAMPLE_BASE_URL")
22+
23+
# Let's start by creating a client
24+
25+
assert api_token_secret
26+
assert api_token_id
27+
28+
client = lightspark.LightsparkSyncClient(
29+
api_token_client_id=api_token_id,
30+
api_token_client_secret=api_token_secret,
31+
base_url=base_url,
32+
)
33+
34+
# Create an invitation
35+
invitation = client.create_uma_invitation_with_incentives(
36+
inviter_uma="$alice@testvasp1.com",
37+
inviter_phone_number_e164="+11234567890",
38+
inviter_region=lightspark.RegionCode.US,
39+
)
40+
41+
print(
42+
f"Created an invitation with code={invitation.code}, url={invitation.url}, and incentives status={invitation.incentives_status.name}"
43+
)
44+
45+
46+
# Claim an invitation
47+
48+
client.claim_uma_invitation_with_incentives(
49+
invitation_code=invitation.code,
50+
invitee_uma="$bob@testvasp2.com",
51+
invitee_phone_number_e164="+520987654321",
52+
invitee_region=lightspark.RegionCode.MX,
53+
)
54+
55+
print("Claimed invitation!")
56+
57+
58+
# Claiming an invitation again!
59+
60+
try:
61+
print("Claiming the same invitation again...")
62+
client.claim_uma_invitation_with_incentives(
63+
invitation_code=invitation.code,
64+
invitee_uma="$bob@testvasp2.com",
65+
invitee_phone_number_e164="+520987654321",
66+
invitee_region=lightspark.RegionCode.MX,
67+
)
68+
failed = False
69+
except:
70+
failed = True
71+
72+
assert failed, "Claiming an invitation twice should fail."
73+
print("Claiming an invitation twice failed, as expected!")

lightspark/lightspark_client.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,9 @@ def create_uma_invitation(
684684
"inviter_uma": inviter_uma,
685685
},
686686
)
687-
return UmaInvitation_from_json(json["create_uma_invitation"]["invitation"])
687+
return UmaInvitation_from_json(
688+
self._requester, json["create_uma_invitation"]["invitation"]
689+
)
688690

689691
def create_uma_invitation_with_incentives(
690692
self,
@@ -712,7 +714,7 @@ def create_uma_invitation_with_incentives(
712714
},
713715
)
714716
return UmaInvitation_from_json(
715-
json["create_uma_invitation_with_incentives"]["invitation"]
717+
self._requester, json["create_uma_invitation_with_incentives"]["invitation"]
716718
)
717719

718720
def claim_uma_invitation(
@@ -783,7 +785,7 @@ def fetch_uma_invitation(
783785
)
784786

785787
return (
786-
UmaInvitation_from_json(json["uma_invitation_by_code"])
788+
UmaInvitation_from_json(self._requester, json["uma_invitation_by_code"])
787789
if json["uma_invitation_by_code"]
788790
else None
789791
)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
7+
@dataclass
8+
class ClaimUmaInvitationInput:
9+
invitation_code: str
10+
11+
invitee_uma: str
12+
13+
def to_json(self) -> Mapping[str, Any]:
14+
return {
15+
"claim_uma_invitation_input_invitation_code": self.invitation_code,
16+
"claim_uma_invitation_input_invitee_uma": self.invitee_uma,
17+
}
18+
19+
20+
def from_json(obj: Mapping[str, Any]) -> ClaimUmaInvitationInput:
21+
return ClaimUmaInvitationInput(
22+
invitation_code=obj["claim_uma_invitation_input_invitation_code"],
23+
invitee_uma=obj["claim_uma_invitation_input_invitee_uma"],
24+
)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.requests.requester import Requester
7+
8+
9+
@dataclass
10+
class ClaimUmaInvitationOutput:
11+
requester: Requester
12+
13+
invitation_id: str
14+
15+
def to_json(self) -> Mapping[str, Any]:
16+
return {
17+
"claim_uma_invitation_output_invitation": {"id": self.invitation_id},
18+
}
19+
20+
21+
FRAGMENT = """
22+
fragment ClaimUmaInvitationOutputFragment on ClaimUmaInvitationOutput {
23+
__typename
24+
claim_uma_invitation_output_invitation: invitation {
25+
id
26+
}
27+
}
28+
"""
29+
30+
31+
def from_json(requester: Requester, obj: Mapping[str, Any]) -> ClaimUmaInvitationOutput:
32+
return ClaimUmaInvitationOutput(
33+
requester=requester,
34+
invitation_id=obj["claim_uma_invitation_output_invitation"]["id"],
35+
)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.objects.RegionCode import RegionCode
7+
from lightspark.utils.enums import parse_enum
8+
9+
from .RegionCode import RegionCode
10+
11+
12+
@dataclass
13+
class ClaimUmaInvitationWithIncentivesInput:
14+
invitation_code: str
15+
16+
invitee_uma: str
17+
18+
invitee_phone_hash: str
19+
20+
invitee_region: RegionCode
21+
22+
def to_json(self) -> Mapping[str, Any]:
23+
return {
24+
"claim_uma_invitation_with_incentives_input_invitation_code": self.invitation_code,
25+
"claim_uma_invitation_with_incentives_input_invitee_uma": self.invitee_uma,
26+
"claim_uma_invitation_with_incentives_input_invitee_phone_hash": self.invitee_phone_hash,
27+
"claim_uma_invitation_with_incentives_input_invitee_region": self.invitee_region.value,
28+
}
29+
30+
31+
def from_json(obj: Mapping[str, Any]) -> ClaimUmaInvitationWithIncentivesInput:
32+
return ClaimUmaInvitationWithIncentivesInput(
33+
invitation_code=obj[
34+
"claim_uma_invitation_with_incentives_input_invitation_code"
35+
],
36+
invitee_uma=obj["claim_uma_invitation_with_incentives_input_invitee_uma"],
37+
invitee_phone_hash=obj[
38+
"claim_uma_invitation_with_incentives_input_invitee_phone_hash"
39+
],
40+
invitee_region=parse_enum(
41+
RegionCode, obj["claim_uma_invitation_with_incentives_input_invitee_region"]
42+
),
43+
)
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.requests.requester import Requester
7+
8+
9+
@dataclass
10+
class ClaimUmaInvitationWithIncentivesOutput:
11+
requester: Requester
12+
13+
invitation_id: str
14+
15+
def to_json(self) -> Mapping[str, Any]:
16+
return {
17+
"claim_uma_invitation_with_incentives_output_invitation": {
18+
"id": self.invitation_id
19+
},
20+
}
21+
22+
23+
FRAGMENT = """
24+
fragment ClaimUmaInvitationWithIncentivesOutputFragment on ClaimUmaInvitationWithIncentivesOutput {
25+
__typename
26+
claim_uma_invitation_with_incentives_output_invitation: invitation {
27+
id
28+
}
29+
}
30+
"""
31+
32+
33+
def from_json(
34+
requester: Requester, obj: Mapping[str, Any]
35+
) -> ClaimUmaInvitationWithIncentivesOutput:
36+
return ClaimUmaInvitationWithIncentivesOutput(
37+
requester=requester,
38+
invitation_id=obj["claim_uma_invitation_with_incentives_output_invitation"][
39+
"id"
40+
],
41+
)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.objects.RegionCode import RegionCode
7+
from lightspark.utils.enums import parse_enum
8+
9+
from .RegionCode import RegionCode
10+
11+
12+
@dataclass
13+
class CreateInvitationWithIncentivesInput:
14+
inviter_uma: str
15+
16+
inviter_phone_hash: str
17+
18+
inviter_region: RegionCode
19+
20+
def to_json(self) -> Mapping[str, Any]:
21+
return {
22+
"create_invitation_with_incentives_input_inviter_uma": self.inviter_uma,
23+
"create_invitation_with_incentives_input_inviter_phone_hash": self.inviter_phone_hash,
24+
"create_invitation_with_incentives_input_inviter_region": self.inviter_region.value,
25+
}
26+
27+
28+
def from_json(obj: Mapping[str, Any]) -> CreateInvitationWithIncentivesInput:
29+
return CreateInvitationWithIncentivesInput(
30+
inviter_uma=obj["create_invitation_with_incentives_input_inviter_uma"],
31+
inviter_phone_hash=obj[
32+
"create_invitation_with_incentives_input_inviter_phone_hash"
33+
],
34+
inviter_region=parse_enum(
35+
RegionCode, obj["create_invitation_with_incentives_input_inviter_region"]
36+
),
37+
)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.requests.requester import Requester
7+
8+
9+
@dataclass
10+
class CreateInvitationWithIncentivesOutput:
11+
requester: Requester
12+
13+
invitation_id: str
14+
15+
def to_json(self) -> Mapping[str, Any]:
16+
return {
17+
"create_invitation_with_incentives_output_invitation": {
18+
"id": self.invitation_id
19+
},
20+
}
21+
22+
23+
FRAGMENT = """
24+
fragment CreateInvitationWithIncentivesOutputFragment on CreateInvitationWithIncentivesOutput {
25+
__typename
26+
create_invitation_with_incentives_output_invitation: invitation {
27+
id
28+
}
29+
}
30+
"""
31+
32+
33+
def from_json(
34+
requester: Requester, obj: Mapping[str, Any]
35+
) -> CreateInvitationWithIncentivesOutput:
36+
return CreateInvitationWithIncentivesOutput(
37+
requester=requester,
38+
invitation_id=obj["create_invitation_with_incentives_output_invitation"]["id"],
39+
)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
7+
@dataclass
8+
class CreateUmaInvitationInput:
9+
inviter_uma: str
10+
11+
def to_json(self) -> Mapping[str, Any]:
12+
return {
13+
"create_uma_invitation_input_inviter_uma": self.inviter_uma,
14+
}
15+
16+
17+
def from_json(obj: Mapping[str, Any]) -> CreateUmaInvitationInput:
18+
return CreateUmaInvitationInput(
19+
inviter_uma=obj["create_uma_invitation_input_inviter_uma"],
20+
)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright ©, 2022-present, Lightspark Group, Inc. - All Rights Reserved
2+
3+
from dataclasses import dataclass
4+
from typing import Any, Mapping
5+
6+
from lightspark.requests.requester import Requester
7+
8+
9+
@dataclass
10+
class CreateUmaInvitationOutput:
11+
requester: Requester
12+
13+
invitation_id: str
14+
15+
def to_json(self) -> Mapping[str, Any]:
16+
return {
17+
"create_uma_invitation_output_invitation": {"id": self.invitation_id},
18+
}
19+
20+
21+
FRAGMENT = """
22+
fragment CreateUmaInvitationOutputFragment on CreateUmaInvitationOutput {
23+
__typename
24+
create_uma_invitation_output_invitation: invitation {
25+
id
26+
}
27+
}
28+
"""
29+
30+
31+
def from_json(
32+
requester: Requester, obj: Mapping[str, Any]
33+
) -> CreateUmaInvitationOutput:
34+
return CreateUmaInvitationOutput(
35+
requester=requester,
36+
invitation_id=obj["create_uma_invitation_output_invitation"]["id"],
37+
)

0 commit comments

Comments
 (0)