Skip to content

Commit 3b9cf01

Browse files
mifeillejoshuaocero
authored andcommitted
CON-336-story(activity): implement update device last seen time after end meeting (#504)
- update the device last seen after end meeting - add a last_activity field in devices table that stores what event logged the last seen update [Delivers CON-336]
1 parent e3c4b3c commit 3b9cf01

File tree

4 files changed

+33
-5
lines changed

4 files changed

+33
-5
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""Add_last_activity_to_devices
2+
3+
Revision ID: 98e4dbfc868a
4+
Revises: ace641b9b89b
5+
Create Date: 2019-10-15 09:22:19.847309
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = '98e4dbfc868a'
14+
down_revision = 'ace641b9b89b'
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
op.add_column('devices', sa.Column('last_activity', sa.String(), nullable=True))
21+
22+
23+
def downgrade():
24+
op.drop_column('devices', 'last_activity')

api/devices/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Devices(Base, Utility):
1818
room_id = Column(Integer, ForeignKey('rooms.id', ondelete="CASCADE"))
1919
room = relationship('Room')
2020
state = Column(Enum(StateType), nullable=False, default="active")
21+
last_activity = Column(String, nullable=True)
2122

2223
def __init__(self, **kwargs):
2324
validate_empty_fields(**kwargs)

api/events/schema.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from helpers.calendar.credentials import get_single_calendar_event
1313
from helpers.auth.authentication import Auth
1414
from helpers.pagination.paginate import ListPaginate
15-
from helpers.devices.devices import update_device_last_seen
15+
from helpers.devices.devices import update_device_last_activity
1616
from helpers.events_filter.events_filter import (
1717
filter_events_by_date_range,
1818
validate_page_and_per_page
@@ -46,7 +46,7 @@ class Arguments:
4646
def mutate(self, info, **kwargs):
4747
room_id, event = check_event_in_db(self, info, "checked_in", **kwargs)
4848
if kwargs.get('check_in_time'):
49-
update_device_last_seen(info, room_id, kwargs['check_in_time'])
49+
update_device_last_activity(info, room_id, kwargs['check_in_time'], 'check in')
5050
if not event:
5151
event = EventsModel(
5252
event_id=kwargs['event_id'],
@@ -82,7 +82,7 @@ def mutate(self, info, **kwargs):
8282
kwargs['start_time']) + timedelta(minutes=10)
8383
except ValueError:
8484
raise GraphQLError("Invalid start time")
85-
update_device_last_seen(info, room_id, device_last_seen)
85+
update_device_last_activity(info, room_id, device_last_seen, 'cancel meeting')
8686
if not event:
8787
event = EventsModel(
8888
event_id=kwargs['event_id'],
@@ -124,6 +124,8 @@ class Arguments:
124124

125125
def mutate(self, info, **kwargs):
126126
room_id, event = check_event_in_db(self, info, "ended", **kwargs)
127+
if kwargs.get('meeting_end_time'):
128+
update_device_last_activity(info, room_id, kwargs['meeting_end_time'], 'end meeting')
127129
if not event:
128130
event = EventsModel(
129131
event_id=kwargs['event_id'],

helpers/devices/devices.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
from api.devices.schema import Devices as DeviceSchema
44

55

6-
def update_device_last_seen(info, room_id, check_in_time):
6+
def update_device_last_activity(info, room_id, activity_time, activity):
77
device_query = DeviceSchema.get_query(info)
88
device = device_query.filter(
99
DeviceModel.room_id == room_id
1010
).first()
1111
if not device:
1212
raise GraphQLError("Room device not found")
13-
device.last_seen = check_in_time
13+
device.last_seen = activity_time
14+
device.last_activity = activity
1415
device.save()

0 commit comments

Comments
 (0)