All files / workspace/modules NearbyStores.js

96.92% Statements 63/65
100% Branches 5/5
80% Functions 4/5
96.92% Lines 63/65

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 661x 1x 1x 1x 1x 1x 1x 1x 1x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x     6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 6x 1x 1x 1x 1x 1x 1x  
import {get} from '../utils/api-json.js';
import urls from '../utils/urls.js';
import Is from 'strong-type';
import Address from '../modules/Address.js';
 
const is=new Is;
const defaultAddress=new Address('222 2nd St, San Francisco, CA 94105');
 
class NearbyStores{
    constructor(addressInfo=this.address, pickUpType='Delivery') {
        
        this.address = new Address(addressInfo);
 
        return this.#getStores(pickUpType);
    }
 
    address=defaultAddress
    stores=[]
    
    get dominosAPIResponse(){
        return this.#dominosAPIResponse; 
    }
 
    set dominosAPIResponse(value){
        is.object(value);
 
        return this.#dominosAPIResponse=value;
    }
 
    #dominosAPIResponse={}
 
    async #getStores(pickUpType){
        const stores=await get(
            urls.store.find
                .replace(
                    '${line1}',
                    encodeURI(
                        this.address.addressLines.line1
                    )
                ).replace(
                    '${line2}',
                    encodeURI(
                        this.address.addressLines.line2
                    )
                ).replace(
                    '${pickUpType}',
                    pickUpType
                )
        );
 
        this.dominosAPIResponse=stores;
 
        this.address.formatted=stores.Address;
        this.stores=stores.Stores;
 
        //console.dir(this,{depth:1})
        
        return this;
    }
};
 
export {
    NearbyStores as default,
    NearbyStores
};