Alfresco Rest api get document shared link - java
I need to share and unshare the content in alfresco using Rest API,
I read the sharedLinks documentation but I don't know how to retrieve the document url I want to share.
This endpoint return an object with this properties :
{
"entry": {
"id": "string",
"expiresAt": "2022-03-23T18:16:00.603Z",
"nodeId": "string",
"name": "string",
"title": "string",
"description": "string",
"modifiedAt": "2022-03-23T18:16:00.603Z",
"modifiedByUser": {
"displayName": "string",
"id": "string"
},
"sharedByUser": {
"displayName": "string",
"id": "string"
},
"content": {
"mimeType": "string",
"mimeTypeName": "string",
"sizeInBytes": 0,
"encoding": "string"
},
"allowableOperations": [
"string"
],
"allowableOperationsOnTarget": [
"string"
],
"isFavorite": true,
"properties": {},
"aspectNames": [
"string"
],
"path": {
"elements": [
{
"id": "string",
"name": "string",
"nodeType": "string",
"aspectNames": [
"string"
]
}
],
"name": "string",
"isComplete": true
}
}
}
How can i retrieve the path from the response?
Is there another way to get the effective complete shared link for a document ?
The response returns you an ID of the share link.
Example: "id": "riqJ3xV3M4RNxJm6Haa7-w"
Use this ID to access the share link :
https://your.alfresco.domaine/share/s/riqJ3xV3M4RNxJm6Haa7-w
You can also use this web service : emailSharedLink to send an email with the link to the shared document.
Related
Avro Schema Data Validations with Regular Expressions in Java
I'm very new to Using AVRO Schema and I have a use case where I need to validate AVRO schema data with regular expressions. I mean the field value can allow Numbers OR only allow Alphabets OR AlphaNumeric values OR fixed min-max length etc. I tried like below but it's not working. if any idea please assist me for the same . AVRO schema is : { "type": "record", "name": "Employee", "namespace": "com.test.avro", "fields": [ { "name": "empId", "type": "string", "pattern": "[1-9]" }, { "name": "empName", "type": "string", "pattern": "[a-zA-Z]" }, { "name": "createdDate", "type": "string", "pattern": "^[1-9]$" }, { "name": "mobile", "type": "string", "pattern": "^[1-9]*$" } ] } Thanks in Advance.
Json Schema to json conversion library in java or groovy
I have Json schema as input I want to know whether there is a method by which I can generate sample json output. Do we have any such library in java which I can use? { "title": "InputSchema", "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "age": { "description": "Age in years", "type": "integer", } }, "required": ["firstName", "lastName"] } output => { "firstName" : "FirstName", "lastName" : "LastName" }
Filter nested json data using jsonpath as in example
I am using jsonpath to filter. Json(Dummy json just to explain) source String, which is basically a list of Operating systems and details of its programs etc. In this example, the OS whose id = 1403 is a windows 10 OS and has 2 features acchritecture and browser. There are more details to the browser feature as shown in json [ { "id": 1403, "os": "window 10", "features": [ { "id": 1356, "name": "architecture", "value": [ { "id": 1308, "feature": [ { "id": 1262, "key": "name", "value": "amd64" } ] } ], "category": "cat1" }, { "id": 1357, "name": "browser", "value": [ { "id": 1309, "feature": [ { "id": 1263, "key": "name", "value": "Firefox" }, { "id": 1265, "key": "version", "value": "187" } ] } ], "category": "cat2" } ] }, { "id": 2804, "os": "window 7", "features": [ { "id": 2764, "name": "architecture", "value": [ { "id": 2719, "feature": [ { "id": 2679, "key": "name", "value": "amd64" } ] } ], "category": "cat1" }, { "id": 2765, "name": "browser", "value": [ { "id": 2722, "feature": [ { "id": 2685, "key": "name", "value": "Chrome" }, { "id": 2684, "key": "version", "value": "87.0.4280.88" } ] } ], "category": "cat2" } ] } ] I want to be able to filter the json such that features[*].name == 'browser' and features[*].value[*].feature[*].value == 'chrome' What will be the JsonPath string that can help me achieve above query? The above query uses similar syntax used by JsonPath string but doesn't do the job. Its just to explain. There is another example here gets Movie Title Given 'Starring' field And would like to get the full OS json that fulfils this condition. In this case a array of OS which contains only one OS i.e. with id= 2804 [ { "id": "2804", ... } ] I am stuck much before what aim to achieve. Here is my code to get all the OS that have "name=browser". I get the array but it only contains value[] items. I want it get the full json. It returns object with IDs- 1357, 2765. List<Map<String, Object>> expensive = JsonPath.parse(jsonDataSourceString) .read("$[*].features[*].[?(#.name == 'browser')]");
To get the outer array you need to use the filter like $[?(...)] For your current use case, we need to use nested array filters. There is an open issue in JsonPath for filter on children level. (Refer here). Luckily, there is a workaround suggested to use contains over here. we can use the below expression to filter: List<Object> expensive = JsonPath.parse(jsonDataSourceString) .read("$[?(#.features[?(#.name == 'browser')].value[*].feature[*].value contains 'Chrome')]"); Prints the below output {id=2804, os=window 7, features=[{"id":2764,"name":"architecture","value":[{"id":2719,"feature":[{"id":2679,"key":"name","value":"amd64"}]}],"category":"cat1"},{"id":2765,"name":"browser","value":[{"id":2722,"feature":[{"id":2685,"key":"name","value":"Chrome"},{"id":2684,"key":"version","value":"87.0.4280.88"}]}],"category":"cat2"}]}
How to send the multiple jsonobjects inside the JSONArray to the api using retrofit android
My Format { "iList": [ { "ADDRESS1": "string", "CITY": "string", "COUNTRY": "string", "EMAIL_ADDRESS": "string", "FIRST_NAME": "string", "LAST_NAME": "string", "PRIMARY_PHONE_NUMBER": "string", "STATE_PROVINCE": "string", "ZIP_CODE": "string" } ], "iaList": [ { "ATTRIBUTE_NAME": "string", "CUSTOM_PERMISSION": "string", "Id": "string", "GLOBAL_PERMISSION": "string" }, { "ATTRIBUTE_NAME": "string", "CUSTOM_PERMISSION": "string", "Id": "string", "GLOBAL_PERMISSION": "string" }, { "ATTRIBUTE_NAME": "string", "CUSTOM_PERMISSION": "string", "Id": "string", "GLOBAL_PERMISSION": "string" } ], "Uplift": [ { "AGE": 0, "AUTOMOBILE": "string", "CHILD_AGES": "string", "DATE_OF_BIRTH": "string", "EDUCATION": "string", "GENDER": "string", } ] } I have created a main model class with List and each individual model class. But i have no idea of doing iaList. How can i pass multiple json object inside json array . Please anyone help me
eBay Order API throwing error in sandbox environment
In ebay Order API - initiateCheckoutSession (guest checkout), adding credit card information returns error. I am testing in sandbox environment. API : https://api.sandbox.ebay.com/buy/order/v1/guest_checkout_session/initiate Request Body: { "creditCard": { "accountHolderName": "Frank Smith", "cardNumber": "5100000001598174", "cvvNumber": "012", "expireMonth": 10, "expireYear": 2019, "brand": "MASTERCARD", "billingAddress": { "firstName": "Frank", "lastName": "Smith", "addressLine1": "3737 Any St", "city": "San Jose", "stateOrProvince": "CA", "postalCode": "95134", "country": "US" } }, "contactEmail": "fsmith1234#anymail.com", "contactFirstName": "Frank", "contactLastName": "Smith", "shippingAddress": { "recipient": "Frank Smith", "phoneNumber": "617 555 1212", "addressLine1": "3737 Any St", "city": "San Jose", "stateOrProvince": "CA", "postalCode": "95134", "country": "US" }, "lineItemInputs": [ { "quantity": 1, "itemId": "v1|110188913683|0" } ] } Response: { "errors": [ { "errorId": 15000, "domain": "API_ORDER", "category": "APPLICATION", "message": "There was a problem with an eBay internal system or process. Contact eBay developer support for assistance.", "parameters": [ { "name": "code", "value": "1042" } ] } ] } API works fine if credit card details are not in request. Could someone please help?
As per eBay Order API documentation, your request payload is good, but if you check the guest checkout samples they do not have the credit-card object in the request. They also mention that if you do not have credit card information in this request then you can call updatePaymentInfoGuest to add credit card information to checkout session. Documentation Links : Initiate Checkout : https://developer.ebay.com/api-docs/buy/order/resources/guest_checkout_session/methods/initiateCheckoutSession Update Payment Info : https://developer.ebay.com/api-docs/buy/order/resources/guest_checkout_session/methods/updatePaymentInfo#_samples The inputs are the buyer's email, name, and address and the item IDs and quantity of each item. You can have a maximum of four individual items of any quantity in a checkout session. Each item is associated with a unique line item. Optionally, you can include the buyer's payment information. If you don't include this information in this call, you can use the updatePaymentInfoGuest call to add this information to the checkout session. As the guest checkout response doesn't have much information about the error, I would recommend you to try the below .... call guest checkout without credit-card information (buy/order/v1/guest_checkout_session/initiate) call update payment with cred-t-card information info using the checkout session id from above (buy/order/v1/guest_checkout_session/{checkoutSessionId}/update_payment_info) Checkout Session Request Schema: { "contactEmail": "string", "contactFirstName": "string", "contactLastName": "string", "creditCard": { "accountHolderName": "string", "billingAddress": { "addressLine1": "string", "addressLine2": "string", "city": "string", "country": "CountryCodeEnum : [AD,AE,AF,AG,AI,AL,AM,AN,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW]", "county": "string", "firstName": "string", "lastName": "string", "postalCode": "string", "stateOrProvince": "string" }, "brand": "string", "cardNumber": "string", "cvvNumber": "string", "expireMonth": "integer", "expireYear": "integer" }, "lineItemInputs": [ { "itemId": "string", "quantity": "integer" } ], "shippingAddress": { "addressLine1": "string", "addressLine2": "string", "city": "string", "country": "CountryCodeEnum : [AD,AE,AF,AG,AI,AL,AM,AN,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW]", "county": "string", "phoneNumber": "string", "postalCode": "string", "recipient": "string", "stateOrProvince": "string" } } Update Payment Info Request Schema: { /* UpdatePaymentInformation */ "creditCard": { /* CreditCard */ "accountHolderName": "string", "billingAddress": { /* BillingAddress */ "addressLine1": "string", "addressLine2": "string", "city": "string", "country": "CountryCodeEnum : [AD,AE,AF...]", "county": "string", "firstName": "string", "lastName": "string", "postalCode": "string", "stateOrProvince": "string" }, "brand": "string", "cardNumber": "string", "cvvNumber": "string", "expireMonth": "integer", "expireYear": "integer" } }