Esempio n. 1
0
def robots(request):
    if request.method == 'GET':
        pagination = get_pagination_params(request)
        map_sort = {
            'is_active': 'user__is_active',
        }
        sort = get_sort_params(request, map_sort)
        rfilter = {
            'company_id_lst': request.GET.getlist('company_id'),
            'dispatch_hub_id': int(request.GET.get('dispatch_hub_id', -1)),
            'map_id': request.GET.get('map_id'),
            'status_lst': request.GET.getlist('status'),
            'customer_id': int(request.GET.get('customer_id', -1)),
            'keyword': request.GET.get('keyword', None),
            'type': request.GET.get('type').split(",") if request.GET.get('type') else None 
        }
        is_supervisor = request.user.groups.filter(name=GROUPS.SUPERVISOR).exists()
        is_staff = request.user.groups.filter(name=GROUPS.STAFF).exists()
        is_customer = request.user.groups.filter(name=GROUPS.CUSTOMER).exists()
        # set filter by role
        if is_supervisor or is_staff:
            rfilter['company_id_lst'] = [request.user.operator.company_id]
            if is_staff and settings.MODULE == CAMELLO_MODULE:
                rfilter['dispatch_hubs_ids'] = [d.id for d in request.user.operator.dispatch_hubs.all()]
        if is_customer:
            rfilter['customer_id'] = request.user.id
        data = RobotService.listing(pagination, sort, rfilter)
        return response_success(data)

    elif request.method == 'POST':
        data = RobotService.create(request.data)
        return response_success(data)
Esempio n. 2
0
def robot_heartbeat_detail(request, robot_pk):
    if request.method == "GET":
        filter_dict = {
            "crs": int(request.GET.get('crs', -1))
        }
        data = RobotService.get_heartbeat(robot_pk, filter_dict)
        return response_success(data)
Esempio n. 3
0
def robot(request, robot_pk):
    if request.method == 'GET':
        if RobotService.is_robot(request.user.pk) and request.user.pk != robot_pk:
            raise PermissionDenied('Only robot can get its own data')
        filter_dict = {
            'crs': int(request.GET.get('crs', -1))
        }
        data = RobotService.details(robot_pk, filter_dict)
        return response_success(data)

    elif request.method == 'PATCH':
        data = RobotService.update(request.data, robot_pk)
        return response_success(data)

    elif request.method == 'DELETE':
        RobotService.delete(robot_pk)
        return response_success()
Esempio n. 4
0
def get_robot_map(request, robot_pk):
    if request.method == 'GET':
        data = RobotService.get_robot_map(robot_pk)
        return response_success(data)
Esempio n. 5
0
def robot_heartbeat(request):
    data = RobotService.update_heartbeat(request.data, request.user.id)
    return response_success(data)
Esempio n. 6
0
def robot_by_name(request, robot_name):
    if request.method == 'GET':
        data = RobotService.details_by_name(robot_name)
        return response_success(data)