Issues (27)

th_slack/api/views.py (1 issue)

1
2
from rest_framework.response import Response
3
from rest_framework.decorators import api_view
4
5
from django_th.models import TriggerService
6
from django_th.services import default_provider
7
8
from th_slack.models import Slack
9
10
11 View Code Duplication
def consumer(trigger_id, data):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
12
    """
13
        call the consumer and handle the data
14
        :param trigger_id:
15
        :param data:
16
        :return:
17
    """
18
    status = True
19
    # consumer - the service which uses the data
20
    default_provider.load_services()
21
    service = TriggerService.objects.get(id=trigger_id)
22
23
    service_consumer = default_provider.get_service(
24
        str(service.consumer.name.name))
25
    kwargs = {'user': service.user}
26
27
    if len(data) > 0:
28
29
        getattr(service_consumer, '__init__')(service.consumer.token,
30
                                              **kwargs)
31
        status = getattr(service_consumer, 'save_data')(service.id, **data)
32
33
    return status
34
35
36
@api_view(['POST'])
37
def slack(request):
38
    data = {}
39
    # check that the data are ok with the provided signature
40
    slack = Slack.objects.filter(slack_token=request.data['token'],
41
                                 team_id=request.data['team_id']).get()
42
    if slack:
43
        data['title'] = 'From Slack #{}'.format(request.data['channel_name'])
44
        data['content'] = request.data['text']
45
        status = consumer(slack.trigger_id, data)
46
        if status:
47
            return Response({"message": "Success"})
48
        else:
49
            return Response({"message": "Bad request"})
50