<?php

namespace App\Generated\Controllers\V1_1;

use App\Generated\V1_1\Messages\Friend\AgreeFriendApplyMessage;
use App\Http\Services\V1_1\FriendService;
use App\Generated\V1_1\Messages\Friend\GetEachLikeContactsMessage;
use App\Generated\V1_1\Messages\Friend\StarContactMessage;
use App\Http\Controllers\Controller;
use App\Generated\V1_1\Messages\Friend\RefusePairFriendApplyMessage;
use App\Generated\V1_1\Messages\Friend\UnStarContactMessage;
use App\Generated\V1_1\Messages\Friend\FriendApplyMsgOverviewMessage;
use App\Generated\V1_1\Messages\Friend\GetReceiveFriendApplyListMessage;
use App\Generated\V1_1\Messages\Friend\ChangeContactNoteMessage;
use App\Generated\V1_1\Messages\Friend\GetStarContactListMessage;
use App\Generated\V1_1\Messages\Friend\UnBlacklistContactMessage;
use App\Generated\V1_1\Messages\Friend\RefuseFriendApplyMessage;
use App\Generated\V1_1\Messages\Friend\AgreePairFriendApplyMessage;
use App\Generated\V1_1\Messages\Friend\GetContactListMessage;
use App\Generated\V1_1\Messages\Friend\SendPairFriendApplyMessage;
use App\Generated\V1_1\Messages\Friend\GetUnReadSayHelloContactListMessage;
use App\Generated\V1_1\Messages\Friend\SendFriendApplyMessage;
use App\Generated\V1_1\Messages\Friend\BlacklistContactMessage;
use App\Generated\V1_1\Messages\Friend\GetReadSayHelloContactListMessage;
use App\Generated\V1_1\Messages\Friend\GetSendFriendApplyListMessage;
use App\Generated\V1_1\Messages\Friend\DeleteContactMessage;
use App\Generated\V1_1\Messages\Friend\GetContactMessage;
use App\Generated\V1_1\Messages\Friend\GetAllFriendAppliesMessage;
use App\Generated\V1_1\Messages\Friend\GetFriendListMessage;
use DB;

class FriendController extends Controller
{
    public $handler;

    public function __construct(FriendService $handler)
    {
        $this->handler = $handler;
    }

    public function getReadSayHelloContactList(GetReadSayHelloContactListMessage $message)
    {
        $message->validateInput();
        $this->handler->getReadSayHelloContactList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getUnReadSayHelloContactList(GetUnReadSayHelloContactListMessage $message)
    {
        $message->validateInput();
        $this->handler->getUnReadSayHelloContactList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getFriendList(GetFriendListMessage $message)
    {
        $message->validateInput();
        $this->handler->getFriendList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getEachLikeContacts(GetEachLikeContactsMessage $message)
    {
        $message->validateInput();
        $this->handler->getEachLikeContacts($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getStarContactList(GetStarContactListMessage $message)
    {
        $message->validateInput();
        $this->handler->getStarContactList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getContactList(GetContactListMessage $message)
    {
        $message->validateInput();
        $this->handler->getContactList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getSendFriendApplyList(GetSendFriendApplyListMessage $message)
    {
        $message->validateInput();
        $this->handler->getSendFriendApplyList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getReceiveFriendApplyList(GetReceiveFriendApplyListMessage $message)
    {
        $message->validateInput();
        $this->handler->getReceiveFriendApplyList($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getAllFriendApplies(GetAllFriendAppliesMessage $message)
    {
        $message->validateInput();
        $this->handler->getAllFriendApplies($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function friendApplyMsgOverview(FriendApplyMsgOverviewMessage $message)
    {
        $message->validateInput();
        $this->handler->friendApplyMsgOverview($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function unStarContact(UnStarContactMessage $message)
    {
        $message->validateInput();
        $this->handler->unStarContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function starContact(StarContactMessage $message)
    {
        $message->validateInput();
        $this->handler->starContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function deleteContact(DeleteContactMessage $message)
    {
        $message->validateInput();
        $this->handler->deleteContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function unBlacklistContact(UnBlacklistContactMessage $message)
    {
        $message->validateInput();
        $this->handler->unBlacklistContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function blacklistContact(BlacklistContactMessage $message)
    {
        $message->validateInput();
        $this->handler->blacklistContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function changeContactNote(ChangeContactNoteMessage $message)
    {
        $message->validateInput();
        $this->handler->changeContactNote($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function refuseFriendApply(RefuseFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->refuseFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function agreeFriendApply(AgreeFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->agreeFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function sendFriendApply(SendFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->sendFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function refusePairFriendApply(RefusePairFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->refusePairFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function agreePairFriendApply(AgreePairFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->agreePairFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function sendPairFriendApply(SendPairFriendApplyMessage $message)
    {
        $message->validateInput();
        $this->handler->sendPairFriendApply($message);
        $message->validateOutput();
        return $message->getResponse();
    }

    public function getContact(GetContactMessage $message)
    {
        $message->validateInput();
        $this->handler->getContact($message);
        $message->validateOutput();
        return $message->getResponse();
    }

}
