|
- from fastapi import APIRouter
- from fastapi.param_functions import Depends
- from fastapi.security import OAuth2PasswordRequestForm
- from fastapi_login.exceptions import InvalidCredentialsException
-
-
-
- from core.actions import get_user_by_name
- from core.security import manager
- from models.Majortel.contacts import contacts
- from models.Majortel.contacts_microsip import contacts_microsip
- from models.httpresponse import httpResponse400, httpResponse200, httpResponse500
- from starlette.requests import Request
-
-
- router = APIRouter(
- prefix="/majortel/contacts"
- )
-
- @router.get("/username/{username}/password/{password}/addressbook/{addressbook}/",
- response_model=contacts, tags=["Majortel"],
- responses={200: {"model": httpResponse200}, 400: {"model": httpResponse400}, 500: {"model": httpResponse500}})
- async def get_majortel_contacts(username, password, addressbook, request: Request):
- mapping = {
- "contacts_mapping": {
- "fn": ("fn", None, None),
- "tel": ("tel", None, None),
- "adr": ("adr", None, None),
- "email": ("email", None, None),
- "categories": ("categories", None, None),
- },
- "base_mapping": {
- "contacts": ("contacts", None, "contacts_mapping"),
- }
- }
- if DEBUG: print("[debug] Sono in endpoint majortel/contacts")
- if DEBUG: print("[debug] url:")
- url = str(request.url)
- if DEBUG: print(url)
- host = url.split(":5050")[0]
- contacts = carddav_util.read(
- url=host + "/drive/remote.php/dav/addressbooks/users/" + username + "/" + addressbook + "/",
- user=username, filename="", passwd=password, auth="basic", verify=True
- )
- return api_utils.mapper(mapping, contacts)
-
-
- @router.get("/username/{username}/password/{password}/addressbook/{addressbook}/microsip/",
- response_model=contacts_microsip, tags=["Majortel"],
- responses={200: {"model": httpResponse200}, 400: {"model": httpResponse400}, 500: {"model": httpResponse500}})
- async def get_majortel_contacts_microsip(username, password, addressbook, request: Request):
- mapping = {
- "contacts_mapping": {
- "firstname": ("fn", coerce_methods.coerce_fn_to_microsip_firstname, None),
- "lastname": ("fn", coerce_methods.coerce_fn_to_microsip_lastname, None),
- "phone": ("tel", coerce_methods.coerce_tel_to_phone_microsip, None),
- "mobile": ("tel", coerce_methods.coerce_tel_to_mobile_microsip, None),
- "address": ("adr", coerce_methods.coerce_adr_to_microsip_address, None),
- "city": ("adr", coerce_methods.coerce_adr_to_microsip_city, None),
- "state": ("adr", coerce_methods.coerce_adr_to_microsip_state, None),
- "zip": ("adr", coerce_methods.coerce_adr_to_microsip_zip, None),
- "email": ("email", None, None)
- # ("categories": "", None),
- },
- "base_mapping": {
- "items": ("contacts", None, "contacts_mapping"),
- }
- }
- if DEBUG: print("[debug] Sono in endpoint majortel/contacts/microsip")
- if DEBUG: print("[debug] url:")
- url = str(request.url)
- if DEBUG: print(url)
- host = url.split(":5050")[0]
- contacts = carddav_util.read(
- url=host + "/drive/remote.php/dav/addressbooks/users/" + username + "/" + addressbook + "/",
- user=username, filename="", passwd=password, auth="basic", verify=True
- )
- return api_utils.mapper(mapping, contacts)
|