Dokumentation för API-funktioner
GET CRM/Contact/{customerId}/Speculator/{contactIds} Hämta lista av spekulantrelationer för kontakter, max 20 stycken kontakter åt gången. Request Information URI Parameters
NamnBeskrivningTypInformation
customerId Kund-id. string Krävs
contactIds Kontaktidn (kommaseparerade, max 20 stycken). string Krävs
Response Information Resource Description Hämta lista av spekulantrelationer för kontakter, max 20 stycken kontakter åt gången. Collection of CrmSpeculatorContact
NamnBeskrivningTypInformation
Id Kontaktid string

SpeculatorOn Bostäderna som kontakten är och har varit spekulant på. Collection of CrmSpeculatorRelation

Kodexempel

curl "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Speculator/StringValue" -X GET -H "Authorization: basic {Base64 kodad användarnamn och lösenord}" 
            

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Speculator/StringValue"
Invoke-WebRequest -Uri $URL -Method GET -Headers @{"authorization" = "basic {Base64 kodad användarnamn och lösenord}"} 
                

// HttpClientInstance ska deklareras som en singleton
// public static readonly HttpClient HttpClientInstance = new HttpClient {
//     BaseAddress = new Uri("https://connect.maklare.vitec.net"),
//     DefaultRequestHeaders = {
//         Authorization = new AuthenticationHeaderValue("Basic", "{Base64 kodad användarnamn och lösenord}")
//     }
// }
using (var response = await HttpClientInstance.GetAsync("CRM/Contact/StringValue/Speculator/StringValue")) {
    if (response.StatusCode == HttpStatusCode.Unauthorized) {
        // Authorization headern är inte korrekt
    }
    if (response.StatusCode == HttpStatusCode.Forbidden) {
        // Begärt data som det saknas åtkomst till
    }
    if (response.StatusCode == HttpStatusCode.InternalServerError) {
        // Oväntat fel, kontakta Vitec
    }
    if (response.StatusCode == HttpStatusCode.BadRequest) {
        var json = await response.Content.ReadAsStringAsync();
        var result = JsonConvert.DeserializeObject<dynamic>(json);
        // Hantera valideringsfel, presenteras i resultatet
    }
    
    var json = await response.Content.ReadAsStringAsync();
    // JsonConvert finns i biblioteket Newtonsoft.Json
    var result = JsonConvert.DeserializeObject<dynamic>(json);
    
    var firstInArray = result[0];
    var id = firstInArray.id.Value;
    // TODO: Gör något med resultatet
}

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Speculator/StringValue";

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERNAME, "{Användarnamn}");
curl_setopt($ch, CURLOPT_PASSWORD, "{Lösenord}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);

$result = curl_exec($ch);

if (curl_errno($ch)) {
    die(curl_getinfo($ch));
}

$info = curl_getinfo($ch);
curl_close($ch);

$http_code = $info["http_code"];
if ($http_code == 401) {
    // Användarnamnet eller lösenordet är felaktigt
}
if ($http_code == 403) {
    // Begärt data som det saknas åtkomst till
}
if ($http_code == 500) {
    // Oväntat fel, kontakta Vitec
}
if ($http_code == 400) {
    $json = json_decode($result, true);
    // Hantera valideringsfel, presenteras i $json
}

$first = $result[0];
$field_on_result = $first["id"];
// TODO: Gör något med resultatet
Testformulär Text input
Response Formats
[
  {
    "id": "sample string 1",
    "speculatorOn": [
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "level": "Reserved"
      },
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "level": "Reserved"
      }
    ]
  },
  {
    "id": "sample string 1",
    "speculatorOn": [
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "level": "Reserved"
      },
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "level": "Reserved"
      }
    ]
  }
]
<ArrayOfCrmSpeculatorContact xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.Contact.Crm">
  <CrmSpeculatorContact>
    <Id>sample string 1</Id>
    <SpeculatorOn>
      <CrmSpeculatorRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <Level>Reserved</Level>
      </CrmSpeculatorRelation>
      <CrmSpeculatorRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <Level>Reserved</Level>
      </CrmSpeculatorRelation>
    </SpeculatorOn>
  </CrmSpeculatorContact>
  <CrmSpeculatorContact>
    <Id>sample string 1</Id>
    <SpeculatorOn>
      <CrmSpeculatorRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <Level>Reserved</Level>
      </CrmSpeculatorRelation>
      <CrmSpeculatorRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <Level>Reserved</Level>
      </CrmSpeculatorRelation>
    </SpeculatorOn>
  </CrmSpeculatorContact>
</ArrayOfCrmSpeculatorContact>