package com.kryptnostic.sharing.v1.http; import java.util.Map; import java.util.Set; import retrofit.http.Body; import retrofit.http.DELETE; import retrofit.http.GET; import retrofit.http.POST; import retrofit.http.PUT; import retrofit.http.Path; import com.kryptnostic.indexing.v1.ObjectSearchPair; import com.kryptnostic.kodex.v1.models.response.BasicResponse; import com.kryptnostic.sharing.v1.models.IncomingShares; import com.kryptnostic.sharing.v1.models.request.RevocationRequest; import com.kryptnostic.sharing.v1.models.request.SharingRequest; import com.kryptnostic.sharing.v1.models.response.KeyUpdateResponse; public interface SharingApi { String SHARE = "/share"; String OBJECT = "/object"; String REVOKE = "/revoke"; String KEYS = "/keys"; String OBJECT_KEYS = "/objectKeys"; String ID = "id"; @GET( SHARE + OBJECT ) IncomingShares getIncomingShares(); @POST( SHARE + OBJECT + "/{" + ID + "}" ) BasicResponse<String> removeIncomingShares( @Path( ID ) String uuid ); @POST( SHARE + OBJECT + SHARE ) BasicResponse<String> share( @Body SharingRequest request ); @POST( SHARE + OBJECT + REVOKE ) BasicResponse<String> revokeAccess( @Body RevocationRequest request ); // TODO: Consider creating objects here. @PUT( SHARE + KEYS ) KeyUpdateResponse addSearchPairs( @Body Map<String, ObjectSearchPair> indexPairs ); @DELETE( SHARE + KEYS ) KeyUpdateResponse removeKeys( @Body Set<String> uuids ); @GET( SHARE + OBJECT + "/{" + ID + "}" + OBJECT_KEYS ) byte[] getSearchPair( @Path( ID ) String id ); }