| 76 CxJsonValue *apiUrl = cxJsonObjGet(sessionValue, "apiUrl"); |
76 CxJsonValue *apiUrl = cxJsonObjGet(sessionValue, "apiUrl"); |
| 77 CxJsonValue *downloadUrl = cxJsonObjGet(sessionValue, "downloadUrl"); |
77 CxJsonValue *downloadUrl = cxJsonObjGet(sessionValue, "downloadUrl"); |
| 78 CxJsonValue *uploadUrl = cxJsonObjGet(sessionValue, "uploadUrl"); |
78 CxJsonValue *uploadUrl = cxJsonObjGet(sessionValue, "uploadUrl"); |
| 79 |
79 |
| 80 if(cxJsonIsString(username)) { |
80 if(cxJsonIsString(username)) { |
| 81 sn->username = cx_strdup_a(mp->allocator, username->string.ptr).ptr; |
81 sn->username = cx_strdup_a(mp->allocator, username->string).ptr; |
| 82 } |
82 } |
| 83 if(cxJsonIsString(apiUrl)) { |
83 if(cxJsonIsString(apiUrl)) { |
| 84 sn->apiUrl = cx_strdup_a(mp->allocator, apiUrl->string.ptr).ptr; |
84 sn->apiUrl = cx_strdup_a(mp->allocator, apiUrl->string).ptr; |
| 85 } |
85 } |
| 86 if(cxJsonIsString(downloadUrl)) { |
86 if(cxJsonIsString(downloadUrl)) { |
| 87 sn->downloadUrl = cx_strdup_a(mp->allocator, downloadUrl->string.ptr).ptr; |
87 sn->downloadUrl = cx_strdup_a(mp->allocator, downloadUrl->string).ptr; |
| 88 } |
88 } |
| 89 if(cxJsonIsString(uploadUrl)) { |
89 if(cxJsonIsString(uploadUrl)) { |
| 90 sn->uploadUrl = cx_strdup_a(mp->allocator, uploadUrl->string.ptr).ptr; |
90 sn->uploadUrl = cx_strdup_a(mp->allocator, uploadUrl->string).ptr; |
| |
91 } |
| |
92 |
| |
93 // primary accounts |
| |
94 CxJsonValue *primary_accounts = cxJsonObjGet(sessionValue, "primaryAccounts"); |
| |
95 if(cxJsonIsObject(primary_accounts)) { |
| |
96 CxJsonValue *pm_mail = cxJsonObjGet(primary_accounts, "urn:ietf:params:jmap:mail"); |
| |
97 CxJsonValue *pm_contacts = cxJsonObjGet(primary_accounts, "urn:ietf:params:jmap:contacts"); |
| |
98 CxJsonValue *pm_calendars = cxJsonObjGet(primary_accounts, "urn:ietf:params:jmap:calendars"); |
| |
99 if(cxJsonIsString(pm_mail)) { |
| |
100 sn->primary_accounts.mail = cx_strdup_a(mp->allocator, pm_mail->string).ptr; |
| |
101 } |
| |
102 if(cxJsonIsString(pm_contacts)) { |
| |
103 sn->primary_accounts.contacts = cx_strdup_a(mp->allocator, pm_contacts->string).ptr; |
| |
104 } |
| |
105 if(cxJsonIsString(pm_calendars)) { |
| |
106 sn->primary_accounts.calendars = cx_strdup_a(mp->allocator, pm_calendars->string).ptr; |
| |
107 } |
| 91 } |
108 } |
| 92 |
109 |
| 93 return sn; |
110 return sn; |
| 94 } |
111 } |
| 95 |
112 |