All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.krenfro.eztexting.UpdateRequest Maven / Gradle / Ivy

package com.github.krenfro.eztexting;

import com.sun.jersey.core.util.MultivaluedMapImpl;
import java.util.Objects;
import javax.ws.rs.core.MultivaluedMap;

public class UpdateRequest {

    private final Contact contact;
    private final MultivaluedMap values;
    
    private UpdateRequest(Contact contact, MultivaluedMap values){
        Objects.requireNonNull(contact);
        Objects.requireNonNull(values);
        this.contact = contact;
        this.values = new MultivaluedMapImpl();
        this.values.putAll(values);
    }
    
    Contact getContact(){
        return contact;
    }
    
    MultivaluedMap getValues(){
        return values;
    }
    
    public static class Builder{

        private MultivaluedMap values = new MultivaluedMapImpl();
        private Contact contact;
        
        public Builder(Contact contact){
            Objects.requireNonNull(contact);
            this.contact = contact;
        }
        
        public Builder phone(String phone){
            Objects.requireNonNull(phone);
            values.add("PhoneNumber", phone);    
            return this;
        }
        
        public Builder first(String first){
            Objects.requireNonNull(first);
            values.add("FirstName", first);
            return this;
        }        
        
        public Builder last(String last){
            Objects.requireNonNull(last);
            values.add("LastName", last);
            return this;
        }
        
        public Builder email(String email){
            Objects.requireNonNull(email);
            values.add("Email", email);
            return this;
        }
        
        public Builder optOut(){
            values.add("OptOut", "1");
            return this;
        }
        
        public Builder group(String group){
            Objects.requireNonNull(group);
            values.add("Groups", group);
            return this;
        }
        
        public Builder group(String ... groups){
            Objects.requireNonNull(groups);
            for (String group: groups){
                group(group);
            }
            return this;
        }
        
        public UpdateRequest build(){
            return new UpdateRequest(contact, values);
        }
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy