"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.socialNetworkInstagramsRouter = void 0;
const social_network_instagram_controller_1 = require("../../controllers/social-network/social-network-instagram.controller");
const auth_middleware_1 = require("../../middleware/auth.middleware");
const social_network_instagram_validator_1 = require("../../validators/social-network/social-network-instagram.validator");
const abstract_route_1 = require("../abstract.route");
const express = require("express");
const router = express.Router();
const controller = new social_network_instagram_controller_1.SocialNetworkInstagramsController();
class SocialNetworkInstagramsRoute extends abstract_route_1.AbstractRoute {
    constructor(_controller, _router) {
        super(_controller, _router, new social_network_instagram_validator_1.SocialNetworkInstagramsValidator(), []);
        this.customMethods = [
            "getItem",
            "getItems",
            "createItem",
            "connect",
            "disconnect",
            "sendMessages",
            "sendPhotos",
            "sendVideos",
            "sendAudios",
            "sendStories",
            "publishPhoto",
            "publishAlbum",
            "publishVideo",
            "publishStory",
            "session"
        ];
    }
    session() {
        this.router.get("/session/:id", auth_middleware_1.AuthMiddleware, this.validator.session(), this.controller.session.bind(this.controller));
    }
    sendMessages() {
        this.router.post("/send-messages", auth_middleware_1.AuthMiddleware, this.validator.sendMessages(), this.controller.sendMessages.bind(this.controller));
    }
    sendPhotos() {
        this.router.post("/send-photos", auth_middleware_1.AuthMiddleware, this.validator.sendPhotos(), this.controller.sendPhotos.bind(this.controller));
    }
    sendVideos() {
        this.router.post("/send-videos", auth_middleware_1.AuthMiddleware, this.validator.sendVideos(), this.controller.sendVideos.bind(this.controller));
    }
    sendAudios() {
        this.router.post("/send-audios", auth_middleware_1.AuthMiddleware, this.validator.sendAudios(), this.controller.sendAudios.bind(this.controller));
    }
    sendStories() {
        this.router.post("/send-stories", auth_middleware_1.AuthMiddleware, this.validator.sendStories(), this.controller.sendStories.bind(this.controller));
    }
    publishPhoto() {
        this.router.post("/publish-photo", auth_middleware_1.AuthMiddleware, this.validator.publishMultimedia(), this.controller.publishPhoto.bind(this.controller));
    }
    publishVideo() {
        this.router.post("/publish-video", auth_middleware_1.AuthMiddleware, this.validator.publishMultimedia(), this.controller.publishVideo.bind(this.controller));
    }
    publishAlbum() {
        this.router.post("/publish-album", auth_middleware_1.AuthMiddleware, this.validator.publishMultimedia(), this.controller.publishAlbum.bind(this.controller));
    }
    publishStory() {
        this.router.post("/publish-story", auth_middleware_1.AuthMiddleware, this.validator.publishMultimedia(), this.controller.publishStory.bind(this.controller));
    }
    connect() {
        this.router.post("/connect", auth_middleware_1.AuthMiddleware, this.validator.connect(), this.controller.connect.bind(this.controller));
    }
    disconnect() {
        this.router.post("/disconnect", auth_middleware_1.AuthMiddleware, this.validator.connect(), this.controller.connect.bind(this.controller));
    }
}
exports.socialNetworkInstagramsRouter = new SocialNetworkInstagramsRoute(controller, router).init();
