# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from . import api_pb2 as api__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class APIStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Ping = channel.unary_unary(
                '/org.couchers.api.core.API/Ping',
                request_serializer=api__pb2.PingReq.SerializeToString,
                response_deserializer=api__pb2.PingRes.FromString,
                )
        self.GetUser = channel.unary_unary(
                '/org.couchers.api.core.API/GetUser',
                request_serializer=api__pb2.GetUserReq.SerializeToString,
                response_deserializer=api__pb2.User.FromString,
                )
        self.UpdateProfile = channel.unary_unary(
                '/org.couchers.api.core.API/UpdateProfile',
                request_serializer=api__pb2.UpdateProfileReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.SendFriendRequest = channel.unary_unary(
                '/org.couchers.api.core.API/SendFriendRequest',
                request_serializer=api__pb2.SendFriendRequestReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.ListFriendRequests = channel.unary_unary(
                '/org.couchers.api.core.API/ListFriendRequests',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.ListFriendRequestsRes.FromString,
                )
        self.ListFriends = channel.unary_unary(
                '/org.couchers.api.core.API/ListFriends',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.ListFriendsRes.FromString,
                )
        self.ListMutualFriends = channel.unary_unary(
                '/org.couchers.api.core.API/ListMutualFriends',
                request_serializer=api__pb2.ListMutualFriendsReq.SerializeToString,
                response_deserializer=api__pb2.ListMutualFriendsRes.FromString,
                )
        self.RespondFriendRequest = channel.unary_unary(
                '/org.couchers.api.core.API/RespondFriendRequest',
                request_serializer=api__pb2.RespondFriendRequestReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.CancelFriendRequest = channel.unary_unary(
                '/org.couchers.api.core.API/CancelFriendRequest',
                request_serializer=api__pb2.CancelFriendRequestReq.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.InitiateMediaUpload = channel.unary_unary(
                '/org.couchers.api.core.API/InitiateMediaUpload',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=api__pb2.InitiateMediaUploadRes.FromString,
                )


class APIServicer(object):
    """Missing associated documentation comment in .proto file."""

    def Ping(self, request, context):
        """Pings the server for updates and basic user info
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUser(self, request, context):
        """Get info about a particular user
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateProfile(self, request, context):
        """Update your profile
        *Nullable can be set to null to clear the value. is_null defaults to false.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SendFriendRequest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFriendRequests(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFriends(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListMutualFriends(self, request, context):
        """List mutual friends between requester and requested user
        When called on self, returns empty list
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RespondFriendRequest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CancelFriendRequest(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def InitiateMediaUpload(self, request, context):
        """Initiate a media upload
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_APIServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Ping': grpc.unary_unary_rpc_method_handler(
                    servicer.Ping,
                    request_deserializer=api__pb2.PingReq.FromString,
                    response_serializer=api__pb2.PingRes.SerializeToString,
            ),
            'GetUser': grpc.unary_unary_rpc_method_handler(
                    servicer.GetUser,
                    request_deserializer=api__pb2.GetUserReq.FromString,
                    response_serializer=api__pb2.User.SerializeToString,
            ),
            'UpdateProfile': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateProfile,
                    request_deserializer=api__pb2.UpdateProfileReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'SendFriendRequest': grpc.unary_unary_rpc_method_handler(
                    servicer.SendFriendRequest,
                    request_deserializer=api__pb2.SendFriendRequestReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'ListFriendRequests': grpc.unary_unary_rpc_method_handler(
                    servicer.ListFriendRequests,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.ListFriendRequestsRes.SerializeToString,
            ),
            'ListFriends': grpc.unary_unary_rpc_method_handler(
                    servicer.ListFriends,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.ListFriendsRes.SerializeToString,
            ),
            'ListMutualFriends': grpc.unary_unary_rpc_method_handler(
                    servicer.ListMutualFriends,
                    request_deserializer=api__pb2.ListMutualFriendsReq.FromString,
                    response_serializer=api__pb2.ListMutualFriendsRes.SerializeToString,
            ),
            'RespondFriendRequest': grpc.unary_unary_rpc_method_handler(
                    servicer.RespondFriendRequest,
                    request_deserializer=api__pb2.RespondFriendRequestReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'CancelFriendRequest': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelFriendRequest,
                    request_deserializer=api__pb2.CancelFriendRequestReq.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'InitiateMediaUpload': grpc.unary_unary_rpc_method_handler(
                    servicer.InitiateMediaUpload,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=api__pb2.InitiateMediaUploadRes.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'org.couchers.api.core.API', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class API(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def Ping(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/Ping',
            api__pb2.PingReq.SerializeToString,
            api__pb2.PingRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/GetUser',
            api__pb2.GetUserReq.SerializeToString,
            api__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateProfile(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/UpdateProfile',
            api__pb2.UpdateProfileReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SendFriendRequest(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/SendFriendRequest',
            api__pb2.SendFriendRequestReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFriendRequests(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/ListFriendRequests',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.ListFriendRequestsRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFriends(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/ListFriends',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.ListFriendsRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListMutualFriends(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/ListMutualFriends',
            api__pb2.ListMutualFriendsReq.SerializeToString,
            api__pb2.ListMutualFriendsRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RespondFriendRequest(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/RespondFriendRequest',
            api__pb2.RespondFriendRequestReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelFriendRequest(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/CancelFriendRequest',
            api__pb2.CancelFriendRequestReq.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def InitiateMediaUpload(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/org.couchers.api.core.API/InitiateMediaUpload',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            api__pb2.InitiateMediaUploadRes.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
