MembershipDTO JSonSerializerWithAccessFilter proper membershipDisplayReference
This commit is contained in:
		@@ -2,10 +2,9 @@ package org.hostsharing.hsadminng.service.dto;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.hostsharing.hsadminng.service.CustomerService;
 | 
					import org.hostsharing.hsadminng.service.CustomerService;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.MembershipService;
 | 
					import org.hostsharing.hsadminng.service.MembershipService;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.accessfilter.AccessFor;
 | 
					import org.hostsharing.hsadminng.service.accessfilter.*;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.accessfilter.ParentId;
 | 
					import org.springframework.boot.jackson.JsonComponent;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.accessfilter.Role;
 | 
					import org.springframework.context.ApplicationContext;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.accessfilter.SelfId;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.validation.constraints.NotNull;
 | 
					import javax.validation.constraints.NotNull;
 | 
				
			||||||
import javax.validation.constraints.Size;
 | 
					import javax.validation.constraints.Size;
 | 
				
			||||||
@@ -16,7 +15,7 @@ import java.util.Objects;
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * A DTO for the Membership entity.
 | 
					 * A DTO for the Membership entity.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Serializable {
 | 
					public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Serializable, AccessMappings {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @SelfId(resolver = MembershipService.class)
 | 
					    @SelfId(resolver = MembershipService.class)
 | 
				
			||||||
    @AccessFor(read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
 | 
					    @AccessFor(read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
 | 
				
			||||||
@@ -47,6 +46,9 @@ public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Seria
 | 
				
			|||||||
    @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
 | 
					    @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
 | 
				
			||||||
    private String customerPrefix;
 | 
					    private String customerPrefix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @AccessFor(read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
 | 
				
			||||||
 | 
					    private String membershipDisplayReference;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getId() {
 | 
					    public Long getId() {
 | 
				
			||||||
        return id;
 | 
					        return id;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -111,6 +113,14 @@ public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Seria
 | 
				
			|||||||
        this.customerPrefix = customerPrefix;
 | 
					        this.customerPrefix = customerPrefix;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private String getMembershipDisplayReference() {
 | 
				
			||||||
 | 
					        return membershipDisplayReference;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setMembershipDisplayReference(final String membershipDisplayReference) {
 | 
				
			||||||
 | 
					        this.membershipDisplayReference = membershipDisplayReference;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean equals(Object o) {
 | 
					    public boolean equals(Object o) {
 | 
				
			||||||
        if (this == o) {
 | 
					        if (this == o) {
 | 
				
			||||||
@@ -145,4 +155,20 @@ public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Seria
 | 
				
			|||||||
            ", customer='" + getCustomerPrefix() + "'" +
 | 
					            ", customer='" + getCustomerPrefix() + "'" +
 | 
				
			||||||
            "}";
 | 
					            "}";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonComponent
 | 
				
			||||||
 | 
					    public static class MembershipJsonSerializer extends JsonSerializerWithAccessFilter<MembershipDTO> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public MembershipJsonSerializer(final ApplicationContext ctx) {
 | 
				
			||||||
 | 
					            super(ctx);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonComponent
 | 
				
			||||||
 | 
					    public static class MembershipJsonDeserializer extends JsonDeserializerWithAccessFilter<MembershipDTO> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public MembershipJsonDeserializer(final ApplicationContext ctx) {
 | 
				
			||||||
 | 
					            super(ctx);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,14 @@
 | 
				
			|||||||
package org.hostsharing.hsadminng.service.mapper;
 | 
					package org.hostsharing.hsadminng.service.mapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.hostsharing.hsadminng.domain.*;
 | 
					import org.hostsharing.hsadminng.domain.Customer;
 | 
				
			||||||
 | 
					import org.hostsharing.hsadminng.domain.Membership;
 | 
				
			||||||
import org.hostsharing.hsadminng.service.dto.MembershipDTO;
 | 
					import org.hostsharing.hsadminng.service.dto.MembershipDTO;
 | 
				
			||||||
 | 
					import org.mapstruct.AfterMapping;
 | 
				
			||||||
 | 
					import org.mapstruct.Mapper;
 | 
				
			||||||
 | 
					import org.mapstruct.Mapping;
 | 
				
			||||||
 | 
					import org.mapstruct.MappingTarget;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.mapstruct.*;
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Mapper for the entity Membership and its DTO MembershipDTO.
 | 
					 * Mapper for the entity Membership and its DTO MembershipDTO.
 | 
				
			||||||
@@ -13,8 +18,21 @@ public interface MembershipMapper extends EntityMapper<MembershipDTO, Membership
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Mapping(source = "customer.id", target = "customerId")
 | 
					    @Mapping(source = "customer.id", target = "customerId")
 | 
				
			||||||
    @Mapping(source = "customer.prefix", target = "customerPrefix")
 | 
					    @Mapping(source = "customer.prefix", target = "customerPrefix")
 | 
				
			||||||
 | 
					    @Mapping(target = "membershipDisplayReference", ignore = true)
 | 
				
			||||||
    MembershipDTO toDto(Membership membership);
 | 
					    MembershipDTO toDto(Membership membership);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO BLOG HOWTO: multi-field display reference for selection lists
 | 
				
			||||||
 | 
					    //  also change the filed in the option list in *-update.html
 | 
				
			||||||
 | 
					    @AfterMapping
 | 
				
			||||||
 | 
					    default void setMembershipDisplayReference(final @MappingTarget MembershipDTO dto, final Membership entity) {
 | 
				
			||||||
 | 
					        final Customer customer = entity.getCustomer();
 | 
				
			||||||
 | 
					        dto.setMembershipDisplayReference(customer.getReference()
 | 
				
			||||||
 | 
					            + ":" + customer.getPrefix()
 | 
				
			||||||
 | 
					            + " [" + customer.getName() + "] "
 | 
				
			||||||
 | 
					            + entity.getAdmissionDocumentDate().toString() + " - "
 | 
				
			||||||
 | 
					            + Objects.toString(entity.getCancellationDocumentDate(), ""));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Mapping(target = "shares", ignore = true)
 | 
					    @Mapping(target = "shares", ignore = true)
 | 
				
			||||||
    @Mapping(target = "assets", ignore = true)
 | 
					    @Mapping(target = "assets", ignore = true)
 | 
				
			||||||
    @Mapping(source = "customerId", target = "customer")
 | 
					    @Mapping(source = "customerId", target = "customer")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,7 +89,7 @@
 | 
				
			|||||||
                    <label class="form-control-label" jhiTranslate="hsadminNgApp.asset.membership" for="field_membership">Membership</label>
 | 
					                    <label class="form-control-label" jhiTranslate="hsadminNgApp.asset.membership" for="field_membership">Membership</label>
 | 
				
			||||||
                    <select class="form-control" id="field_membership" name="membership" [(ngModel)]="asset.membershipId"  required>
 | 
					                    <select class="form-control" id="field_membership" name="membership" [(ngModel)]="asset.membershipId"  required>
 | 
				
			||||||
                        <option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option>
 | 
					                        <option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option>
 | 
				
			||||||
                        <option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.admissionDocumentDate}}</option>
 | 
					                        <option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.membershipDisplayReference}}</option>
 | 
				
			||||||
                    </select>
 | 
					                    </select>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)">
 | 
					                <div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,6 +13,7 @@ export interface IMembership {
 | 
				
			|||||||
    assets?: IAsset[];
 | 
					    assets?: IAsset[];
 | 
				
			||||||
    customerPrefix?: string;
 | 
					    customerPrefix?: string;
 | 
				
			||||||
    customerId?: number;
 | 
					    customerId?: number;
 | 
				
			||||||
 | 
					    membershipDisplayReference?: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export class Membership implements IMembership {
 | 
					export class Membership implements IMembership {
 | 
				
			||||||
@@ -26,6 +27,7 @@ export class Membership implements IMembership {
 | 
				
			|||||||
        public shares?: IShare[],
 | 
					        public shares?: IShare[],
 | 
				
			||||||
        public assets?: IAsset[],
 | 
					        public assets?: IAsset[],
 | 
				
			||||||
        public customerPrefix?: string,
 | 
					        public customerPrefix?: string,
 | 
				
			||||||
        public customerId?: number
 | 
					        public customerId?: number,
 | 
				
			||||||
 | 
					        public membershipDisplayReference?: string
 | 
				
			||||||
    ) {}
 | 
					    ) {}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user