Module push_to_3yourmind.api.my_profile
User profile API
Expand source code
"""
User profile API
"""
import typing as t
from push_to_3yourmind import types
from push_to_3yourmind.api.base import BaseAPI
__all__ = ["MyProfileAPI"]
class MyProfileAPI(BaseAPI):
def get_preferences(self) -> types.ResponseDict:
"""
Get preferences of the current user: country, currency, language, unit
"""
return self._request("GET", "my-profile/preferences/")
def set_preferences(
self,
*,
country: types.OptionalString = types.NoValue,
currency: types.OptionalString = types.NoValue,
language: types.OptionalString = types.NoValue,
unit: types.OptionalString = types.NoValue,
) -> types.ResponseDict:
"""
Update profile of the current user. All arguments are optional, only passed
values will be saved to the profile.
Args:
country: 2-letter country code, ex. US, FR, GB
currency: 3-letter currency code, ex. USD, EUR
language: 2-letter language code, ex. en, de, fr, es
unit: mm or inch
"""
json = self._get_parameters(
country=country, currency=currency, language=language, unit=unit
)
return self._request("PUT", "my-profile/preferences/", json=json)
def get_profile(self) -> types.ResponseDict:
"""
Get profile of the current user: name, default address, access roles etc.
"""
return self._request("GET", "my-profile/profile/")
def get_addresses(self) -> t.List[types.ResponseDict]:
"""
Get a list of current user's addresses
"""
return self._request("GET", "my-profile/addresses/")
def get_address(self, *, address_id: int) -> types.ResponseDict:
"""
Get specific address of the current user
"""
return self._request("GET", f"my-profile/addresses/{address_id}/")
Classes
class MyProfileAPI (access_token: str, base_url: str)
-
Base class for all namespaced API methods. Not to be instantiated directly.
Args
access_token
- to create a token, open
/admin/auth/user/
, and click "Create token" in the user list. base_url
- application URL, ex. https://app.3yourmind.com
Expand source code
class MyProfileAPI(BaseAPI): def get_preferences(self) -> types.ResponseDict: """ Get preferences of the current user: country, currency, language, unit """ return self._request("GET", "my-profile/preferences/") def set_preferences( self, *, country: types.OptionalString = types.NoValue, currency: types.OptionalString = types.NoValue, language: types.OptionalString = types.NoValue, unit: types.OptionalString = types.NoValue, ) -> types.ResponseDict: """ Update profile of the current user. All arguments are optional, only passed values will be saved to the profile. Args: country: 2-letter country code, ex. US, FR, GB currency: 3-letter currency code, ex. USD, EUR language: 2-letter language code, ex. en, de, fr, es unit: mm or inch """ json = self._get_parameters( country=country, currency=currency, language=language, unit=unit ) return self._request("PUT", "my-profile/preferences/", json=json) def get_profile(self) -> types.ResponseDict: """ Get profile of the current user: name, default address, access roles etc. """ return self._request("GET", "my-profile/profile/") def get_addresses(self) -> t.List[types.ResponseDict]: """ Get a list of current user's addresses """ return self._request("GET", "my-profile/addresses/") def get_address(self, *, address_id: int) -> types.ResponseDict: """ Get specific address of the current user """ return self._request("GET", f"my-profile/addresses/{address_id}/")
Ancestors
Methods
def get_preferences(self) ‑> Dict[str, Any]
-
Get preferences of the current user: country, currency, language, unit
Expand source code
def get_preferences(self) -> types.ResponseDict: """ Get preferences of the current user: country, currency, language, unit """ return self._request("GET", "my-profile/preferences/")
def set_preferences(self, *, country: Union[str, bytes, Type[NoValue]] = push_to_3yourmind.types.NoValue, currency: Union[str, bytes, Type[NoValue]] = push_to_3yourmind.types.NoValue, language: Union[str, bytes, Type[NoValue]] = push_to_3yourmind.types.NoValue, unit: Union[str, bytes, Type[NoValue]] = push_to_3yourmind.types.NoValue) ‑> Dict[str, Any]
-
Update profile of the current user. All arguments are optional, only passed values will be saved to the profile.
Args
country
- 2-letter country code, ex. US, FR, GB
currency
- 3-letter currency code, ex. USD, EUR
language
- 2-letter language code, ex. en, de, fr, es
unit
- mm or inch
Expand source code
def set_preferences( self, *, country: types.OptionalString = types.NoValue, currency: types.OptionalString = types.NoValue, language: types.OptionalString = types.NoValue, unit: types.OptionalString = types.NoValue, ) -> types.ResponseDict: """ Update profile of the current user. All arguments are optional, only passed values will be saved to the profile. Args: country: 2-letter country code, ex. US, FR, GB currency: 3-letter currency code, ex. USD, EUR language: 2-letter language code, ex. en, de, fr, es unit: mm or inch """ json = self._get_parameters( country=country, currency=currency, language=language, unit=unit ) return self._request("PUT", "my-profile/preferences/", json=json)
def get_profile(self) ‑> Dict[str, Any]
-
Get profile of the current user: name, default address, access roles etc.
Expand source code
def get_profile(self) -> types.ResponseDict: """ Get profile of the current user: name, default address, access roles etc. """ return self._request("GET", "my-profile/profile/")
def get_addresses(self) ‑> List[Dict[str, Any]]
-
Get a list of current user's addresses
Expand source code
def get_addresses(self) -> t.List[types.ResponseDict]: """ Get a list of current user's addresses """ return self._request("GET", "my-profile/addresses/")
def get_address(self, *, address_id: int) ‑> Dict[str, Any]
-
Get specific address of the current user
Expand source code
def get_address(self, *, address_id: int) -> types.ResponseDict: """ Get specific address of the current user """ return self._request("GET", f"my-profile/addresses/{address_id}/")