Dateianhänge in CentralStationCRM

API Navigation

Allgemeines: Grundlagen Authentifizierung Fehlerbehandlung Datenstruktur

Hauptmodelle: Personen Firmen Angebote Projekte Aufgaben

Sonstiges: Anschriften Kontaktdaten Wichtige Daten Individuelle Felder Positionen Notizen Dateianhänge Tags

Die Kür: Webhooks Nutzer Aktivitäten Filter Gruppen Individuelle Feld Typen

Dateianhänge verhalten sich von den Actions (index, show, create, update, delete) her wie die Personen. Anhänge sind jeweils über die Route der zugehörigen Notiz (protocol) oder über direkte Route ohne die Verschachtelung über die Notiz erreichbar. Es stehen folgende Felder zur Verfügung:

Feldname Feldtyp Beschreibung
id VARCHAR(36) UUID des Attachments (Read only)
account_id INTEGER ID des Accounts (Pflichtfeld)
user_id INTEGER ID des Nutzers, der die Datei hochgeladen hat (Pflichtfeld)
attachable_id INTEGER ID des verknüpften Objektes, zum Beispiel der Notiz.
attachable_type VARCHAR(20) Typ des verknüpften Objektes, z.B. Protocol.
content_type VARCHAR(80) Mimetype der Datei, z.B. application/pdf.
original_filename VARCHAR(255) Dateiname der Datei (Pflichtfeld)
attachment_category_id INTEGER ID der verknüpften Kategorie (z.B Präsentationen, Vorlagen oä)
created_at TIMESTAMP Zeitpunkt der Erstellung (automatisch gesetzt, read only)
updated_at TIMESTAMP Zeitpunkt des letzten Updates (automatisch gesetzt, read only)

Action: Index

GET /attachments.json
oder
GET /people/:person_id/protocols/:protocol_id/attachments.json
Mit der Index Action kann eine Liste aller Dateianhänge in einem Account oder der Dateianhänge einer speziellen Notiz abgefragt werden.

Beispiel
curl -X GET https://accountname.centralstationcrm.net/api/attachments.json

[
{"attachment":{"uuid":"63f0440a-dde4-11e4-b414-0cc47a45bfdd","account_id":21,"user_id":64,
"attachable_id":1748471,"attachable_type":"Protocol","content_type":"application/pdf",
"filename":"Entwurf.Wahnheide.2015-04.pdf","created_at":"2015-04-08T13:42:52.000+02:00",
"updated_at":"2015-06-03T16:09:57.000+02:00","attachment_category_id":68,
"user":{"id":64,"gender":2,"first":"Axel","name":"von Leitner",
  "login":"axel.von.leitner@42he.com","passwd":"7619660e7f5abe719f6c7c6c2a84ad6c08a627f0",
  "salted_passwd":"70b8ee626bbc4081f9dc12bfb18f4f15413977bb","salt":"d3b34db22ac1f0e226f932876cb543a07148888a",
  "status":"active","stream_filter":0,"already_logged_in":true,"he42_role":2,
  "puid":"gyK7AQ8y5DXNQjdjo0sXMqCLr72DOMw8OdZF23IuXpfoWeVxUPyFUVw659ZVyEtK",
  "cd_uuid":"27869aba-d4fb-11e2-963e-00163ea46877",
  "created_at":"2010-10-30T20:04:53.000+02:00","updated_at":"2015-07-20T14:54:54.000+02:00",
  "last_login_at":"2015-07-20T14:54:54.000+02:00"},
"attachable":{"id":1748471,"user_id":64,"attachments_count":1,"comments_count":0,
  "name":"ersten Entwurf habe ich Frank gemailt, wir warten auf sein D",
  "confidential":false,"content":"ersten Entwurf düster ....",
  "updated_by_user_id":null,"created_at":"2015-04-08T13:43:44.000+02:00",
  "updated_at":"2015-04-08T13:43:44.000+02:00","data_hash":{},"account_id":21,"badge":"note"},
"attachment_category":{"id":68,"account_id":21,"name":"3 Präsentationen",
"created_at":"2012-03-20T19:17:54.000+01:00","updated_at":"2012-03-20T19:17:54.000+01:00"}},
"data":"Base64encodedstring"}

... 

]

Action: Create

POST /attachments.json
oder
POST /people/:person_id/protocols/:protocol_id/attachments.json
Mit der Create Action können einzelne Anhänge als BASE 64 String Codiert angelegt werden. Anstatt der attachment_category_id kann der Name der Kategorie auch direkt gesetzt werden, indem er als attachment_category_name übergeben wird.

Beispiel
curl -v -H "Accept: application/json" -H "Content-type: application/json"
-X POST -d '{"attachment":{
"data":
"QkVHSU46VkNBUkQNClZFUlNJT046My4wDQpQUk9ESUQ6LS8vQXBwbGUgSW5jLi8vTWFjIE9TIFggMT
AuOS8vRU4NCk46TcODwqRoO0pvbGx5OztIZXJyOw0KRk46SGVyciBKb2xseSBNw4PCpGgNCk9SRzo0Mm
hlO09wZXJhdGlvbg0KVElUTEU6RGF0YWJhc2UgUmVjb3ZlcnkgU2hlZXANCkVNQUlMO3R5cGU9SU5URV
JORVQ7dHlwZT1IT01FO3R5cGU9cHJlZjpzY2hhZkA0MmhlLmNvbQ0KRU1BSUw7dHlwZT1JTlRFUk5FVD
t0eXBlPVdPUks6am9sbHkubWFlaEA0MmhlLmNvbQ0KRU1BSUw7dHlwZT1JTlRFUk5FVDpkZXZlbG9wZX
JzaGFmQDQyaGUuY29tDQpURUw7dHlwZT1XT1JLO3R5cGU9Vk9JQ0U7dHlwZT1wcmVmOjAyMjgyODA5Mj
kxDQpURUw7dHlwZT1DRUxMO3R5cGU9Vk9JQ0U6MDE3NzY1NjE2MDQNClRFTDt0eXBlPVdPUks7dHlwZT
1WT0lDRTowODAwLU3Dg8KkaA0KQURSO3R5cGU9cHJlZjo7O0Jvcm5oZWltZXIgU3RyLiAxMDI7Qm9ubj
s7NTMxMTk7DQpOT1RFOk3Dg8KkaCBNw4PCpGggTcODwqRoISAgIE3Dg8KkaCEhIWVyc3RlbGx0IGFtID
IwMTItMDctMTIgIE3Dg8KkaFwsICAtIEFzc2lzdGVudDogTWluaW9mZW4gLSAwNDcyMS01NjQ2NCAtIG
1pbmlvZmVuQDQyaGUuY29tDQpVUkw7dHlwZT1wcmVmOmh0dHBzOi8vY2VudHJhbHN0YXRpb25jcm0ubm
V0L2FkbWluL3VzZXJzLzE3ODENCkJEQVk6MDAwMS0xMi0yNA0KVUlEOmQxZjExNGY3LWUzOTAtNDBhOC
1iM2QyLWM4ODVkNDgyMGJiNw0KWC1BQlVJRDpEMUYxMTRGNy1FMzkwLTQwQTgtQjNEMi1DODg1RDQ4Mj
BCQjc6QUJQZXJzb24NCkVORDpWQ0FSRA0K", 
"content_type":"text/x-vcard;","original_filename":"jolly.vcf"}}'
https://api.centralstationcrm.net/api/people/:person_id/protocols/:protocol_id/attachments.json

Action: Search

GET /attachments/search.json
Um nach Dateien zu suchen muss der Parameter filename übergeben werden. Die Suche erfolgt dann im Feld filename mit Wildcard am Anfang & Ende. Wenn ein oder mehrere Treffer gefunden wurden, erfolgt die Rückgabe in gleicher Form, wie bei der Index Funktion. Wenn keine Treffer gefunden wurden geben wir einen leeren Array zurück.

Beispiel
curl -X GET https://accountname.centralstationcrm.net/api/attachments/search.json&filename=Bildschirmfoto

[
{"attachment":{"uuid":"05311508-6cee-11e1-916b-0015174fb400","account_id":21,
"user_id":64,"attachable_id":null,"attachable_type":null,"content_type":"image/png",
"filename":"Bildschirmfoto_2012-02-07_um_11.28.42.png","created_at":"2012-03-13T09:22:14.000Z",
"updated_at":"2012-03-13T09:22:14.000Z","attachment_category_id":null}},

{"attachment":{"uuid":"0481b054-6cee-11e1-916b-0015174fb400","account_id":21,
"user_id":64,"attachable_id":null,"attachable_type":null,"content_type":"image/png",
"filename":"Bildschirmfoto_2012-02-07_um_11.29.05.png","created_at":"2012-03-13T09:22:13.000Z",
"updated_at":"2012-03-13T09:22:13.000Z","attachment_category_id":null}},

...
]