# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# See https://github.com/eolymp/contracts/tree/main/cmd/protoc-gen-python-esdk for more details.
"""Generated protocol buffer code."""

import urllib.parse
from google.protobuf import symbol_database as _symbol_database

_sym_db = _symbol_database.Default()


class AccountServiceClient:
    def __init__(self, transport, url="https://api.eolymp.com"):
        self.transport = transport
        self.url = url

    def CreateAccount(self, request, **kwargs):
        path = "/account"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.CreateAccountOutput"),
            **kwargs,
        )

    def DescribeAccount(self, request, **kwargs):
        path = "/account"

        return self.transport.request(
            method="GET",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.DescribeAccountOutput"),
            **kwargs,
        )

    def UpdateAccount(self, request, **kwargs):
        path = "/account"

        return self.transport.request(
            method="PUT",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.UpdateAccountOutput"),
            **kwargs,
        )

    def UploadPicture(self, request, **kwargs):
        path = "/account/picture"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.UploadPictureOutput"),
            **kwargs,
        )

    def DeleteAccount(self, request, **kwargs):
        path = "/account"

        return self.transport.request(
            method="DELETE",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.DeleteAccountOutput"),
            **kwargs,
        )

    def ResendVerification(self, request, **kwargs):
        path = "/account/verification/resend"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.ResendVerificationOutput"),
            **kwargs,
        )

    def CompleteVerification(self, request, **kwargs):
        path = "/account/verification/complete"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.CompleteVerificationOutput"),
            **kwargs,
        )

    def StartRecovery(self, request, **kwargs):
        path = "/account/recovery/start"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.StartRecoveryOutput"),
            **kwargs,
        )

    def CompleteRecovery(self, request, **kwargs):
        path = "/account/recovery/complete"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.CompleteRecoverOutput"),
            **kwargs,
        )

    def DescribeEmailSubscription(self, request, **kwargs):
        path = "/account/email-subscription"

        return self.transport.request(
            method="GET",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.DescribeEmailSubscriptionOutput"),
            **kwargs,
        )

    def UpdateEmailSubscription(self, request, **kwargs):
        path = "/account/email-subscription"

        return self.transport.request(
            method="POST",
            url=self.url+path,
            request_data=request,
            response_symbol=_sym_db.GetSymbol("eolymp.community.UpdateEmailSubscriptionOutput"),
            **kwargs,
        )

