Field Squared API Services

<back to all web services

PublicDocument

The following routes are available for this service:
GET/{Workspace}/API/Document/Schema
GET, PUT, POST, DELETE/{Workspace}/API/Document/{Id}
GET, PUT, POST, DELETE/{Workspace}/API/Document
GET/{Workspace}/API/Document/Schema/{DocumentType}
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Field2Office.API.Model.PublicApi.Documents
Imports Field2Office.API.Model.Documents
Imports Field2Office.API.Model
Imports Field2Office.API.Model.Teams
Imports Field2Office.DomainObjects.Model
Imports Field2Office.Core.Model.Task

Namespace Global

    Namespace Field2Office.API.Model

        Public Partial Class Address
            Public Overridable Property Street As String
            Public Overridable Property Unit As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Zip As String
            Public Overridable Property ContactTitle As String
            Public Overridable Property ContactName As String
            Public Overridable Property ContactPhone As String
            Public Overridable Property ContactEmail As String
            Public Overridable Property Location As Location
            Public Overridable Property SiteName As String
            Public Overridable Property GeocodeFailed As Boolean
            Public Overridable Property Country As String
        End Class

        Public Partial Class ClassedItem
            Public Sub New()
                Ancestors = New List(Of String)
            End Sub

            Public Overridable Property ObjectId As String
            Public Overridable Property [Class] As String
            Public Overridable Property VersionId As String
            Public Overridable Property Ancestors As List(Of String)
            Public Overridable Property Type As String
        End Class

        Public Partial Class DomainItem
            Public Overridable Property Workspace As String
            Public Overridable Property ObjectId As String
            Public Overridable Property VersionId As String
            Public Overridable Property LastUpdated As String
        End Class

        Public Partial Class EventItem
            Public Overridable Property ObjectId As String
            Public Overridable Property [Date] As String
            Public Overridable Property Location As Location
            Public Overridable Property Barcode As String
            Public Overridable Property Details As String
            Public Overridable Property Type As String
            Public Overridable Property IsScan As Boolean
            Public Overridable Property User As String
            Public Overridable Property SelectedBy As String
            Public Overridable Property Status As String
            Public Overridable Property StatusType As String
            Public Overridable Property DateCreated As String
            Public Overridable Property Automatic As Boolean
        End Class

        Public Partial Class Location
            Public Overridable Property y As Double
            Public Overridable Property x As Double
        End Class
    End Namespace

    Namespace Field2Office.API.Model.Documents

        '''<Summary>
        '''Represents a document associated with a task or user. To return multiple documents, call /{Workspace}/Document and pass in query parameter ids = comma separated list of document ids. 
        '''</Summary>
        Public Partial Class Document
            Public Sub New()
                Data = New Dictionary(Of String, Object)
                SecondaryOwners = New List(Of ClassedItem)
                RangeExceptions = New List(Of RangeExceptionItem)
            End Sub

            Public Overridable Property Workspace As String
            Public Overridable Property AssignedWorkspace As String
            Public Overridable Property ObjectId As String
            Public Overridable Property VersionId As String
            Public Overridable Property BasedOn As String
            Public Overridable Property Created As String
            Public Overridable Property ExternalId As String
            Public Overridable Property LastUpdated As String
            Public Overridable Property Type As String
            Public Overridable Property Name As String
            Public Overridable Property Title As String
            Public Overridable Property Data As Dictionary(Of String, Object)
            Public Overridable Property Owner As ClassedItem
            Public Overridable Property SecondaryOwners As List(Of ClassedItem)
            Public Overridable Property Location As Location
            Public Overridable Property [Date] As String
            Public Overridable Property CreatedBy As String
            Public Overridable Property PercentComplete As Double
            Public Overridable Property PercentTotal As Integer
            Public Overridable Property PercentDone As Integer
            Public Overridable Property RangeExceptions As List(Of RangeExceptionItem)
            Public Overridable Property Submitted As Boolean
            Public Overridable Property Schema As String
            Public Overridable Property OwnerData As DocumentOwnerData
        End Class

        Public Partial Class DocumentOwnerData
            Public Overridable Property OwnerType As String
            Public Overridable Property TaskData As DocumentOwnerDataTask
            Public Overridable Property AssetData As DocumentOwnerDataAsset
        End Class

        Public Partial Class DocumentOwnerDataAsset
            Public Sub New()
                CustomDataFields = New List(Of CustomDataField)
            End Sub

            Public Overridable Property ObjectId As String
            Public Overridable Property Name As String
            Public Overridable Property AssetType As String
            Public Overridable Property LastUpdated As Date
            Public Overridable Property Created As Date
            Public Overridable Property Address As AddressBasic
            Public Overridable Property CustomDataFields As List(Of CustomDataField)
        End Class

        Public Partial Class DocumentOwnerDataTask
            Public Sub New()
                CustomDataFields = New List(Of CustomDataField)
            End Sub

            Public Overridable Property ObjectId As String
            Public Overridable Property Name As String
            Public Overridable Property Status As String
            Public Overridable Property TaskType As String
            Public Overridable Property LastUpdated As Date
            Public Overridable Property Created As Date
            Public Overridable Property Priority As Nullable(Of Integer)
            Public Overridable Property Rank As Decimal
            Public Overridable Property FirstTeam As Team
            Public Overridable Property Address As Address
            Public Overridable Property CustomDataFields As List(Of CustomDataField)
        End Class

        Public Partial Class RangeExceptionItem
            Public Overridable Property Binding As String
            Public Overridable Property Message As String
            Public Overridable Property Type As String
            Public Overridable Property ClassName As String
        End Class
    End Namespace

    Namespace Field2Office.API.Model.PublicApi.Documents

        <DataContract>
        Public Partial Class PublicDocument
            Public Sub New()
                Documents = New List(Of Document)
            End Sub

            <DataMember>
            Public Overridable Property Id As String

            <DataMember>
            Public Overridable Property Workspace As String

            <DataMember>
            Public Overridable Property DocumentType As String

            <DataMember>
            Public Overridable Property Document As Document

            <DataMember>
            Public Overridable Property Documents As List(Of Document)
        End Class
    End Namespace

    Namespace Field2Office.API.Model.Teams

        '''<Summary>
        '''Represents a DTO for a team in a workspace. Calls without an ObjectId will retrieve an array of all team objects for the workspace.
        '''</Summary>
        Public Partial Class Team
            Public Sub New()
                Members = New List(Of DomainItem)
                Data = New Dictionary(Of String, String)
                Teams = New List(Of String)
                Events = New List(Of EventItem)
                ActiveLaborTypes = New Dictionary(Of String, Object)
            End Sub

            Public Overridable Property Workspace As String
            Public Overridable Property TimeZone As String
            Public Overridable Property ObjectId As String
            Public Overridable Property ExternalId As String
            Public Overridable Property VersionId As String
            Public Overridable Property BasedOn As String
            Public Overridable Property Name As String
            Public Overridable Property Enabled As Boolean
            Public Overridable Property Members As List(Of DomainItem)
            Public Overridable Property Lead As DomainItem
            Public Overridable Property Parent As DomainItem
            Public Overridable Property Address As Address
            Public Overridable Property Data As Dictionary(Of String, String)
            Public Overridable Property Teams As List(Of String)
            Public Overridable Property Events As List(Of EventItem)
            Public Overridable Property CreatedBy As String
            Public Overridable Property ActiveLaborTypes As Dictionary(Of String, Object)
        End Class
    End Namespace

    Namespace Field2Office.Core.Model.Task

        Public Partial Class CustomDataField
            Public Overridable Property Binding As String
            Public Overridable Property Label As String
            Public Overridable Property Value As Object
            Public Overridable Property DataType As String
            Public Overridable Property IsReadOnly As Boolean
            Public Overridable Property IsHidden As Boolean
            Public Overridable Property Values As String
        End Class
    End Namespace

    Namespace Field2Office.DomainObjects.Model

        Public Partial Class Address
            Inherits AddressBase
            Public Overridable Property SiteName As String
            Public Overridable Property ContactTitle As String
            Public Overridable Property ContactName As String
            Public Overridable Property ContactPhone As String
            Public Overridable Property ContactEmail As String
        End Class

        Public Partial Class AddressBase
            Public Overridable Property Id As String
            Public Overridable Property AddressLine1 As String
            Public Overridable Property AddressLine2 As String
            Public Overridable Property City As String
            Public Overridable Property State As String
            Public Overridable Property Zip As String
            Public Overridable Property Location As Location
            Public Overridable Property Name As String
            Public Overridable Property NameSingleLine As String
            Public Overridable Property NameSingleLine5DigitZip As String
            Public Overridable Property HasValidLocation As Boolean
            Public Overridable Property GeocodeFailed As Boolean
            Public Overridable Property GeocodeResultCode As String
            Public Overridable Property Country As String
        End Class

        Public Partial Class AddressBasic
            Inherits AddressBase
        End Class

        Public Partial Class Location
            Public Overridable Property Latitude As Double
            Public Overridable Property Longitude As Double
            Public Overridable Property HasValidLocation As Boolean
        End Class
    End Namespace
End Namespace

VB.NET PublicDocument 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.

POST /{Workspace}/API/Document/{Id} HTTP/1.1 
Host: dev.fieldsquared.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Id":"String","Workspace":"String","DocumentType":"String","Document":{"Name":"String","ExternalId":"String","Type":"String","OwnerId":"String","OwnerClass":"String","Lat":0,"Lon":0,"LastUpdated":"String","Created":"String","Date":"String","PercentComplete":0,"PercentTotal":0,"PercentDone":0,"Data":{"String":{}}},"Documents":[{"Name":"String","ExternalId":"String","Type":"String","OwnerId":"String","OwnerClass":"String","Lat":0,"Lon":0,"LastUpdated":"String","Created":"String","Date":"String","PercentComplete":0,"PercentTotal":0,"PercentDone":0,"Data":{"String":{}}}]}