private Route features(final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId) { return pathEndOrSingleSlash(() -> Directives.route( get(() -> // GET /features?fields=<fieldsString> parameterOptional(ThingsParameter.FIELDS.toString(), fieldsString -> handlePerRequest(ctx, RetrieveFeatures .of(thingId, calculateSelectedFields(fieldsString).orElse( null), dittoHeaders)) ) ), put(() -> // PUT /features extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, featuresJson -> ModifyFeatures .of(thingId, ThingsModelFactory.newFeatures( featuresJson), dittoHeaders)) ) ), delete(() -> // DELETE /features handlePerRequest(ctx, DeleteFeatures.of(thingId, dittoHeaders)) ) ) ); }
private Route policyEntry(final RequestContext ctx, final DittoHeaders dittoHeaders, final String policyId) { return pathEndOrSingleSlash(() -> Directives.route( get(() -> // GET /policies/<policyId> handlePerRequest(ctx, RetrievePolicy.of(policyId, dittoHeaders)) ), put(() -> // PUT /policies/<policyId> extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, policyJson -> ModifyPolicy .of(policyId, PoliciesModelFactory.newPolicy( createPolicyJsonObjectForPut(policyJson, policyId)), dittoHeaders) ) ) ), delete(() -> // DELETE /policies/<policyId> handlePerRequest(ctx, DeletePolicy.of(policyId, dittoHeaders)) ) ) ); }
private Route thingsEntryAttributes(final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId) { return rawPathPrefix(mergeDoubleSlashes().concat(PATH_ATTRIBUTES), () -> pathEndOrSingleSlash(() -> route( get(() -> // GET /things/<thingId>/attributes?fields=<fieldsString> parameterOptional(ThingsParameter.FIELDS.toString(), fieldsString -> handlePerRequest(ctx, RetrieveAttributes .of(thingId, calculateSelectedFields(fieldsString).orElse( null), dittoHeaders)) ) ), put(() -> // PUT /things/<thingId>/attributes extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, attributesJson -> ModifyAttributes.of(thingId, ThingsModelFactory.newAttributes( attributesJson), dittoHeaders)) ) ), delete(() -> // DELETE /things/<thingId>/attributes handlePerRequest(ctx, DeleteAttributes.of(thingId, dittoHeaders)) ) ) ) ); }
private Route thingsEntry(final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId) { return pathEndOrSingleSlash(() -> route( get(() -> // GET /things/things/<thingId>?fields=<fieldsString> parameterOptional(ThingsParameter.FIELDS.toString(), fieldsString -> handlePerRequest(ctx, RetrieveThing.getBuilder(thingId, dittoHeaders) .withSelectedFields(calculateSelectedFields(fieldsString).orElse(null)) .build()) ) ), put(() -> // PUT /things/things/<thingId> extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, thingJson -> ModifyThing.of(thingId, ThingsModelFactory.newThing( createThingJsonObjectForPut(thingJson, thingId)), createInlinePolicyJson(thingJson), getCopyPolicyFrom(thingJson), dittoHeaders)) ) ), delete(() -> // DELETE /things/things/<thingId> handlePerRequest(ctx, DeleteThing.of(thingId, dittoHeaders)) ) ) ); }
delete(() -> // DELETE /features/<featureId> handlePerRequest(ctx, DeleteFeature.of(thingId, featureId, dittoHeaders))
delete(() -> // DELETE /features/{featureId}/properties handlePerRequest(ctx, DeleteFeatureProperties.of(thingId, featureId,
private Route thingsEntryPolicyEntry(final RequestContext ctx, final DittoHeaders dittoHeaders, final String policyId) { return rawPathPrefix(mergeDoubleSlashes().concat(PathMatchers.segment()), label -> pathEndOrSingleSlash(() -> route( get(() -> // GET /entries/<label> handlePerRequest(ctx, RetrievePolicyEntry.of(policyId, Label.of(label), dittoHeaders)) ), put(() -> // PUT /entries/<label> extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, policyEntryJson -> ModifyPolicyEntry .of(policyId, createPolicyEntryForPut(policyEntryJson, label), dittoHeaders)) ) ), delete(() -> // DELETE /entries/<label> handlePerRequest(ctx, DeletePolicyEntry.of(policyId, Label.of(label), dittoHeaders))) ) ) ); }
private Route featuresEntryDefinition(final RequestContext ctx, final DittoHeaders dittoHeaders, final String thingId) { return rawPathPrefix(mergeDoubleSlashes().concat(PathMatchers.segment()), featureId -> rawPathPrefix(mergeDoubleSlashes().concat(PATH_DEFINITION), () -> pathEndOrSingleSlash(() -> route( get(() -> // GET /features/{featureId}/definition handlePerRequest(ctx, RetrieveFeatureDefinition.of(thingId, featureId, dittoHeaders)) ), put(() -> // PUT /features/{featureId}/definition extractDataBytes(payloadSource -> handlePerRequest(ctx, dittoHeaders, payloadSource, definitionJson -> ModifyFeatureDefinition.of(thingId, featureId, ThingsModelFactory. newFeatureDefinition( definitionJson), dittoHeaders)) ) ), delete(() -> // DELETE /features/{featureId}/definition handlePerRequest(ctx, DeleteFeatureDefinition.of(thingId, featureId, dittoHeaders)) ) ) ) ) ); }
delete(() -> // DELETE /things/<thingId>/acl/<authorizationSubject> handlePerRequest(ctx, DeleteAclEntry .of(thingId, AuthorizationModelFactory.newAuthSubject(
delete(() -> // DELETE /entries/<label>/resources/<resource> handlePerRequest(ctx, DeleteResource.of(policyId, Label.of(label),
delete(() -> // DELETE /entries/<label>/subjects/<subjectId> handlePerRequest(ctx, DeleteSubject.of(policyId, Label.of(label),
delete(() -> // DELETE /things/<thingId>/attributes