Field Squared API Services

<back to all web services

TimeOnSite

Returns an HTML report showing the time on site for the team for the week/month/year. For week, specify the date as yyyymmdd.
This date represents Sunday (1st day of the week) for the week to return. For month, specify the date as yyyymm.
For year, specify the date as yyyy.
Alternatively, these services email a recipient with the report in .csv or .html format.
i.e. /{Workspace}/TimeOnSite/Week/{Date}/{Recipient}/?format=CSV
/{Workspace}/TimeOnSite/Week/{Date}/{Recipient}/?format=HTML

The following routes are available for this service:
GET/{Workspace}/TimeOnSite/Week/{Date}
GET/{Workspace}/TimeOnSite/Month/{Date}
GET/{Workspace}/TimeOnSite/Year/{Date}
GET/{Workspace}/TimeOnSite/Week/{Date}/{Recipient}
GET/{Workspace}/TimeOnSite/Month/{Date}/{Recipient}
GET/{Workspace}/TimeOnSite/Year/{Date}/{Recipient}
GET/{Workspace}/TimeOnSite/{StartDate}/{EndDate}/{Period}
GET/{Workspace}/TimeOnSite/{StartDate}/{EndDate}/{Period}/{Recipient}
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TimeOnSite:
    """
    Returns an HTML report showing the time on site for the team for the week/month/year.  For week, specify the date as yyyymmdd.  This date represents Sunday (1st day of the week) for the week to return.  For month, specify the date as yyyymm.  For year, specify the date as yyyy.  Alternatively, these services email a recipient with the report in .csv or .html format. i.e. /{Workspace}/TimeOnSite/Week/{Date}/{Recipient}/?format=CSV/{Workspace}/TimeOnSite/Week/{Date}/{Recipient}/?format=HTML
    """

    date: Optional[str] = None
    workspace: Optional[str] = None
    recipient: Optional[str] = None
    start_date: Optional[str] = None
    end_date: Optional[str] = None
    period: Optional[str] = None

Python TimeOnSite DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /{Workspace}/TimeOnSite/Week/{Date} HTTP/1.1 
Host: dev.fieldsquared.com 
Accept: text/csv