Users ----- This API allows listing, retrieving, creating, updating, archiving, unarchiving and deleting users. Users are identified by their UUID. List Users .......... .. http:get:: /user/ List all users. **Sample request**: .. sourcecode:: http GET /user/?pageSize=3 HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json :query sortedBy: can be ordered by ``email`` :query archived: boolean denoting if an archived user must be retrieved :query firstName: a filtering value for firstName :query lastName: a filtering value for lastName **Sample response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "count": 11, "items": [ { "email": "user1@glidebooks.com", "uuid": "37ccb9b4356b43c084792c007e337d32", "link": { "rel": "detail", "url": "https://api.fieldaware.net/user/37ccb9b4356b43c084792c007e337d32" } }, { "email": "user9@glidebooks.com", "uuid": "480964f5cc3941198c66d4d3ed2ba93e", "link": { "rel": "detail", "url": "https://api.fieldaware.net/user/480964f5cc3941198c66d4d3ed2ba93e" } }, { "email": "user10@glidebooks.com", "uuid": "4a1de64d6b184abfb5692d2443dfa4d2", "link": { "rel": "detail", "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2" } } ], "page": 0, "pageSize": 3, "sortedBy": [] } Get User ........ .. http:get:: /user/(user_ref) Retrieve a given user. **Sample request**: .. sourcecode:: http GET /user/4a1de64d6b184abfb5692d2443dfa4d2 HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json **Sample response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "archived": false, "customFields": {}, "email": "user10@glidebooks.com", "firstName": "Blaise", "lastName": "Champlin", "locale": "en_US", "phone": null, "platform": "ios", "role": "Admin", "timezone": "Europe/Dublin", "uuid": "4a1de64d6b184abfb5692d2443dfa4d2", "canBeSmartScheduled": false, "skills": [ { "uuid": "5c1de75d6b193abfb5692d2443dfa5e3", "name": "Carpentry" } ] } .. note:: The user password is never included in the response. .. note:: Skills are only available to users who have the smart scheduler and job-type/skills feature enabled Create User ........... .. http:post:: /user/ Create a new user. **Sample minimal request**: `see below for json field values` .. sourcecode:: http POST /user/ HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json { "email": "bill.smith@murphy.com", "password": "Ra$VwL4S!a", "firstName": "William", "lastName": "Smith" } **Sample full request**: .. sourcecode:: http POST /user/ HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json { "email": "john.smith@murphy.com", "password": "Ar!VwL4S$a", "firstName": "John", "lastName": "Smith", "phone": "1234567890", "locale": "en_US", "timezone": "US/Eastern", "platform": "android", "role": "Employee", "archived": false, "customFields": {}, "skills": [ { "uuid": "5c1de75d6b193abfb5692d2443dfa5e3" } ] } :` :json obj workingHours: JSON object containing the Working Hours for each day of the week. :>json obj workingHours.: JSON object identifying the Working Hours for a specific day of the week. Day can be one of ``monday``, ``tuesday``, ``wednesday``, ``thursday``, ``friday``, ``saturday``, ``sunday``. :>json str workingHours.(day).start: start of Working Time in 24-hour format [hh]:[mm]:[ss] or [hh]:[mm]. :>json str workingHours.(day).end: end of Working Time in 24-hour format [hh]:[mm]:[ss] or [hh]:[mm]. :>json int workingHours.(day).allowedOvertime: minutes of allowed overtime (0-9999). :>json bool workingHours.(day).enabled: ``true`` if the day is enabled, ``false`` if disabled. .. note:: If ``end`` is less than or equal to ``start``, then it's considered to be in the following day. .. http:post:: /user/ During the creation of a new user, the ``workingHours`` attribute is optional, but if it's specified then it must include every day of the week, and every inner attribute. .. note:: The allowed overtime cannot overlap the next day's Working Hours. When creating a User with Working Hours, a ``409 CONFLICT`` error is returned if this happens, and the User is not created. **Sample request**: .. sourcecode:: http POST /user/ HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json { "email": "john.smith@murphy.com", "password": "Ar!VwL4S$a", "firstName": "John", "lastName": "Smith", "phone": "1234567890", "locale": "en_US", "timezone": "US/Eastern", "platform": "android", "role": "Employee", "archived": false, "customFields": {}, "workingHours": { "monday": { "start": "09:00:00", "end": "17:00:00", "allowedOvertime": 60, "enabled": true }, "tuesday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": true }, "wednesday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": true }, "thursday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": true }, "friday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": true }, "saturday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": false }, "sunday": { "start": "08:00:00", "end": "17:00:00", "allowedOvertime": 0, "enabled": false } } } :* and ** parameters must be given in ISO 8601 format, and need to be URL-encoded where appropriate. For example, the datetime ``2014-01-31 10:00:00``, must appear in the URL as ``2014-01-31+10%3A00%3A00``. The space between the date and time components needs to be URL-encoded (as a '+'), and the colons (:) between the hours, minutes and seconds must be encoded as well (as %3A00). **Sample response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json Link: ; rel=first,; rel=last { "count": 2, "pageSize": 20, "items": [ { "uuid": "61a432d8a6a84b4d9949406f3431bce2", "notes": null, "date": "2019-07-08T15:47:35+00:00", "link": { "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2/time_entry/61a432d8a6a84b4d9949406f3431bce2", "rel": "detail" }, "user": { "link": { "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2", "rel": "detail" }, "uuid": "4a1de64d6b184abfb5692d2443dfa4d2" }, "action": "clockin", "lat": 53.337577, "lng": -6.273704 }, { "uuid": "c404d533370e4b78a854e948a162b5fe", "notes": null, "date": "2019-04-15T15:42:28+00:00", "link": { "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2/time_entry/c404d533370e4b78a854e948a162b5fe", "rel": "detail" }, "user": { "link": { "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2", "rel": "detail" }, "uuid": "4a1de64d6b184abfb5692d2443dfa4d2" }, "action": "clockout", "lat": 53.337484, "lng": 53.337484 } ], "sortedBy": "date", "page": 0 } :query start: starting date (required) :query end: end date (required) **Sample invocations** .. sourcecode:: http /user/4a1de64d6b184abfb5692d2443dfa4d2/time_entry/?start=2014-01-23&end=2014-01-31 :statuscode 200: no error Get Time Entry ++++++++++++++ .. http:get:: /user/(user_ref)/time_entry/(time_entry_ref) Retrieve a given time entry. **Sample response**: .. sourcecode:: http GET /user/4a1de64d6b184abfb5692d2443dfa4d2/time_entry/d278b2a84b9a479e912c007bf205f647 HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Content-Type: application/json Accept: application/json { "lat": 53.337577, "uuid": "61a432d8a6a84b4d9949406f3431bce2", "notes": null, "date": "2019-07-08T15:47:35+00:00", "user": { "link": { "url": "https://api.fieldaware.net/user/4a1de64d6b184abfb5692d2443dfa4d2", "rel": "detail" }, "uuid": "d278b2a84b9a479e912c007bf205f647" }, "action": "clockin", "lng": -6.273704 } .. _associate-location-permit-to-user: Associate Location Permit to a User ................................... .. warning:: The following feature is only available if the Location Permit feature is enabled. .. http:put:: /user/(user_ref) Updates to a user can now carry a ``permits`` key that include a list of uuids for linked permits. Only non-archived permits can be used; a 409 error will be raised if archived permits are used. The GET endpoint will also include the ``permits`` key. **Sample request**: .. sourcecode:: http PUT /user/d6d22438096503fe72a7c161201c9373 HTTP/1.1 Host: api.fieldaware.net Authorization: Token 9dcae3660ec84eac94bb506e09a9af40 Accept: application/json { "permits": [ {"uuid": "00bd62a92a004faea233951510167cad"}, {"uuid": "bd62a0092a0041510167cadfaea23395"} ] } **Sample response**: .. sourcecode:: http HTTP/1.1 204 No Content Content-Type: application/json :statuscode 204: if the update is successful :statuscode 409: if any of the permits used is not found, or is archived :statuscode 422: if the payload provided is invalid Available Timezones ................... :: Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Niamey Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome Africa/Tripoli Africa/Tunis Africa/Windhoek America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina America/Argentina/Buenos_Aires America/Argentina/Catamarca America/Argentina/Cordoba America/Argentina/Jujuy America/Argentina/La_Rioja America/Argentina/Mendoza America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion America/Atikokan America/Bahia America/Bahia_Banderas America/Barbados America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota America/Boise America/Cambridge_Bay America/Campo_Grande America/Cancun America/Caracas America/Cayenne America/Cayman America/Chicago America/Chihuahua America/Costa_Rica America/Creston America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador America/Fortaleza America/Glace_Bay America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Indiana/Indianapolis America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Inuvik America/Iqaluit America/Jamaica America/Juneau America/Kentucky/Louisville America/Kentucky/Monticello America/Kralendijk America/La_Paz America/Lima America/Los_Angeles America/Lower_Princes America/Maceio America/Managua America/Manaus America/Marigot America/Martinique America/Matamoros America/Mazatlan America/Menominee America/Merida America/Metlakatla America/Mexico_City America/Miquelon America/Moncton America/Monterrey America/Montevideo America/Montreal America/Montserrat America/Nassau America/New_York America/Nipigon America/Nome America/Noronha America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Ojinaga America/Panama America/Pangnirtung America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Resolute America/Rio_Branco America/Santa_Isabel America/Santarem America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Shiprock America/Sitka America/St_Barthelemy America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay America/Tijuana America/Toronto America/Tortola America/Vancouver America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Macquarie Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Rothera Antarctica/South_Pole Antarctica/Syowa Antarctica/Vostok Arctic/Longyearbyen Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Choibalsan Asia/Chongqing Asia/Colombo Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Gaza Asia/Harbin Asia/Hebron Asia/Ho_Chi_Minh Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Kashgar Asia/Kathmandu Asia/Khandyga Asia/Kolkata Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar Asia/Qyzylorda Asia/Rangoon Asia/Riyadh Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Thimphu Asia/Tokyo Asia/Ulaanbaatar Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/South_Georgia Atlantic/St_Helena Atlantic/Stanley Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney Canada/Atlantic Canada/Central Canada/Eastern Canada/Mountain Canada/Newfoundland Canada/Pacific Europe/Amsterdam Europe/Andorra Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Guernsey Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey Europe/Kaliningrad Europe/Kiev Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk Europe/Monaco Europe/Moscow Europe/Oslo Europe/Paris Europe/Podgorica Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino Europe/Sarajevo Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Uzhgorod Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich Etc/GMT Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion Pacific/Apia Pacific/Auckland Pacific/Chatham Pacific/Chuuk Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Pohnpei Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Wake Pacific/Wallis US/Alaska US/Arizona US/Central US/Eastern US/Hawaii US/Mountain US/Pacific Etc/UTC