Completed
Push — master ( 89b1ce...302d13 )
by Fox
01:46
created

TriggerService   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 30
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __str__() 0 5 1
A show() 0 9 1
1
# coding: utf-8
2
from django.db import models
3
from django.contrib.auth.models import User
4
from django.utils.timezone import now
5
from django.utils.translation import ugettext_lazy as _
6
7
8
class ServicesActivated(models.Model):
9
10
    """
11
        Services Activated from the admin
12
    """
13
    name = models.CharField(max_length=200, unique=True)
14
    status = models.BooleanField(default=False)
15
    auth_required = models.BooleanField(default=True)
16
    self_hosted = models.BooleanField(default=False)
17
    description = models.CharField(max_length=200)
18
19
    class Meta:
20
        verbose_name = 'Services'
21
        verbose_name_plural = 'Services'
22
23
    def show(self):
24
        """
25
26
        :return: string representing object
27
        """
28
        return "Service Activated %s %s %s %s" % (self.name, self.status,
29
                                                  self.auth_required,
30
                                                  self.description)
31
32
    def __str__(self):
33
        return self.name
34
35
36
class UserService(models.Model):
37
38
    """
39
        UserService a model to link service and user
40
    """
41
    user = models.ForeignKey(User)
42
    token = models.CharField(max_length=255)
43
    name = models.ForeignKey(
44
        ServicesActivated, to_field='name', related_name='+')
45
    username = models.CharField(
46
        _('username'), max_length=255, default='', blank=True)
47
    password = models.CharField(
48
        _('password'), max_length=128, default='', blank=True)
49
    host = models.CharField(_('host'), max_length=255, default='', blank=True)
50
    client_id = models.CharField(
51
        _('client id'), max_length=255, default='', blank=True)
52
    client_secret = models.CharField(
53
        _('client secret'), max_length=255, default='', blank=True)
54
55
    def show(self):
56
        """
57
58
        :return: string representing object
59
        """
60
        return "User Service %s %s %s" % (self.user, self.token, self.name)
61
62
    def __str__(self):
63
        return self.name.name
64
65
66
class TriggerService(models.Model):
67
68
    """
69
        TriggerService
70
    """
71
    provider = models.ForeignKey(UserService, related_name='+', blank=True)
72
    consumer = models.ForeignKey(UserService, related_name='+', blank=True)
73
    description = models.CharField(max_length=200)
74
    user = models.ForeignKey(User)
75
    date_created = models.DateField(auto_now_add=True)
76
    date_triggered = models.DateTimeField(null=True)
77
    status = models.BooleanField(default=False)
78
    result = models.CharField(max_length=255, default='')
79
    date_result = models.DateTimeField(auto_now=True, null=True)
80
81
    def show(self):
82
        """
83
84
        :return: string representing object
85
        """
86
        return "My Service %s - %s - %s - %s" % (self.user,
87
                                                 self.provider.name,
88
                                                 self.consumer.name,
89
                                                 self.description)
90
91
    def __str__(self):
92
        return "%s - %s - %s - %s" % (self.user,
93
                                      self.provider.name,
94
                                      self.consumer.name,
95
                                      self.description)
96
97
98
def update_result(trigger_id, msg):
99
    """
100
    :param trigger_id: trigger id
101
    :param msg: result msg
102
    :return:
103
    """
104
    TriggerService.objects.filter(id=trigger_id).update(result=msg,
105
                                                        date_result=now())
106