0

enter image description here

I have been around this for a few days but couldn't find the actual cause of the error. Earlier I had some issues related to importing the methods in js but even after solving I couldn't proceed further. I have checked the errors related to the badge's task which was shown but I couldn't move after one point.

    <!--BoatDataService.cls-->
    public with sharing class BoatDataService {
        public static final String LENGTH_TYPE = 'Length';
        public static final String PRICE_TYPE = 'Price';
        public static final String TYPE_TYPE = 'Type';
        @AuraEnabled(cacheable=true)
        public static List<Boat__c> getBoats(String boatTypeId) {
            // Without an explicit boatTypeId, the full list is desired
            String query = 'SELECT '
                         + 'Name, Description__c, Geolocation__Latitude__s, '
                         + 'Geolocation__Longitude__s, Picture__c, Contact__r.Name, '
                         + 'BoatType__c, BoatType__r.Name, Length__c, Price__c '
                         + 'FROM Boat__c';
            if (String.isNotBlank(boatTypeId)) {
                query += ' WHERE BoatType__c = :boatTypeId';
            }
            query += ' WITH SECURITY_ENFORCED ';
            return Database.query(query);
        }

        @AuraEnabled(cacheable=true)
        public static List<Boat__c> getSimilarBoats(Id boatId, String similarBy) {
            List<Boat__c> similarBoats = new List<Boat__c>();
            List<Boat__c> parentBoat = [SELECT Id, Length__c, Price__c, BoatType__c, BoatType__r.Name
                                        FROM Boat__c
                                        WHERE Id = :boatId
                                        WITH SECURITY_ENFORCED];
            if (parentBoat.isEmpty()) {
                return similarBoats;
            }
            if (similarBy == LENGTH_TYPE) {
                similarBoats = [
                    SELECT Id, Contact__r.Name, Name, BoatType__c, BoatType__r.Name, Length__c, Picture__c, Price__c, Year_Built__c
                    FROM Boat__c
                    WHERE Id != :parentBoat.get(0).Id
                    AND (Length__c >= :parentBoat.get(0).Length__c / 1.2)
                    AND (Length__c <= :parentBoat.get(0).Length__c * 1.2)
                    WITH SECURITY_ENFORCED
                    ORDER BY Length__c, Price__c, Year_Built__c
                ];
            } else if (similarBy == PRICE_TYPE) {
                similarBoats = [
                    SELECT Id, Contact__r.Name, Name, BoatType__c, BoatType__r.Name, Length__c, Picture__c, Price__c, Year_Built__c
                    FROM Boat__c
                    WHERE Id != :parentBoat.get(0).Id
                    AND (Price__c >= :parentBoat.get(0).Price__c / 1.2)
                    AND (Price__c <= :parentBoat.get(0).Price__c * 1.2)
                    WITH SECURITY_ENFORCED
                    ORDER BY Price__c, Length__c, Year_Built__c
                ];
            } else if (similarBy == TYPE_TYPE) {
                similarBoats = [
                    SELECT Id, Contact__r.Name, Name, BoatType__c, BoatType__r.Name, Length__c, Picture__c, Price__c, Year_Built__c
                    FROM Boat__c
                    WHERE Id != :parentBoat.get(0).Id
                    AND (BoatType__c = :parentBoat.get(0).BoatType__c)
                    WITH SECURITY_ENFORCED
                    ORDER BY Price__c, Length__c, Year_Built__c
                ];
            }
            return similarBoats;
        }

        @AuraEnabled(cacheable=true)
        public static List<BoatType__c> getBoatTypes() {
            return [SELECT Name, Id FROM BoatType__c WITH SECURITY_ENFORCED ORDER BY Name];
        }

        @AuraEnabled(cacheable=false)
        public static List<BoatReview__c> getAllReviews(Id boatId) {
            return [
                SELECT
                    Id,
                    Name,
                    Comment__c,
                    Rating__c,
                    LastModifiedDate,
                    CreatedDate,
                    CreatedBy.Name,
                    CreatedBy.SmallPhotoUrl,
                    CreatedBy.CompanyName
                FROM
                    BoatReview__c
                WHERE
                    Boat__c =:boatId
                WITH SECURITY_ENFORCED
                ORDER BY
                    CreatedDate DESC
            ];
        }

        @AuraEnabled(cacheable=true)
        public static String getBoatsByLocation(Decimal latitude, Decimal longitude, String boatTypeId) {
            // Without an explicit boatTypeId, the full list is desired
            String query = 'SELECT Name, Geolocation__Latitude__s, Geolocation__Longitude__s FROM Boat__c ';
            if (String.isNotBlank(boatTypeId)) {
                query += 'WHERE BoatType__c = :boatTypeId ';
            }
            query += ' WITH SECURITY_ENFORCED ORDER BY DISTANCE(Geolocation__c, GEOLOCATION(:latitude, :longitude), \'mi\') LIMIT 10';
            return JSON.serialize(Database.query(query));
        }
    }
<!--boatSearchResults.html--> <template> <lightning-layout multiple-rows> <!-- Top --> <lightning-layout-item size="12"> <lightning-card > <h1 slot="title">Find a Boat</h1> <!-- New Boat button goes here --> <h1 slot="actions"> <lightning-button label="New Boat" onclick={createNewBoat}></lightning-button> </h1> <p class="slds-var-p-horizontal_small slds-align_absolute-center"> <!-- boatSearchForm component goes here --> <c-boat-search-form onsearch={searchBoats}></c-boat-search-form> </p> </lightning-card> </lightning-layout-item> <lightning-layout-item size="12" class="slds-var-p-top_small slds-is-relative"> <template if:true={isLoading}> <lightning-spinner alernative-text = "Loading" variant= "brand"></lightning-spinner> </template> <template if:false={isLoading}> <c-boat-search-results boat-type-id={boatTypeId} onloading={handleLoading} ondoneloading={handleDoneLoading}></c-boat-search-results> </template> </lightning-layout-item> </lightning-layout> </template> <!--boatSearchResults.js--> import { LightningElement,api,track } from 'lwc'; import { NavigationMixin } from 'lightning/navigation' export default class BoatSearch extends NavigationMixin(LightningElement) { @api isLoading = false; @track boatTypeId = ''; // Handles loading event handleLoading() { this.isLoading = true; } // Handles done loading event handleDoneLoading() { setTimeout(()=>{ this.isLoading = false;}, 1000) } // Handles search boat event // This custom event comes from the form searchBoats(event) { this.handleLoading(); this.boatTypeId = event.detail.boatTypeId; console.log(this.boatTypeId) this.template.querySelector('c-boat-search-results').searchBoats(this.boatTypeId); this.handleDoneLoading(); } createNewBoat() { this[NavigationMixin.Navigate]({ type:'standard__objectPage', attributes:{ objectApiName: 'Boat__c', actionName: 'new' } }) }

}

Thanks in advance for the answer

0 Answers0