# By: Riasat Ullah
# This file contains code for handling LogicMonitor integration views.

from constants import api_paths, label_names as lnm
from django.http import JsonResponse
from django.views.decorators.http import require_http_methods
from taskcallweb import settings
from translators import label_translator as lt
from utils import helpers
from validations import request_validator
import json


@require_http_methods(['POST'])
def update_logic_monitor_account_info(request):
    '''
    Updates the LogicMonitor domain and api key stored for an integration.
    :param request: Http request
    :return: Http response
    '''
    if request.method == 'POST':
        lang = request_validator.get_user_language(request)
        if request_validator.user_in_session(request):
            body = json.loads(request.body.decode())
            if settings.TEST_MODE:
                return JsonResponse('Success', safe=False)
            else:
                status, output = helpers.post_api_request(api_paths.integrations_logic_monitor_account_update, body,
                                                          request, lang=lang)
                return JsonResponse(output, status=status, safe=False)
        else:
            return JsonResponse(lt.get_label(lnm.err_unauthorized_access, lang), status=401, safe=False)
