Refactory
[smsapi-java.git] / src / pl / smsapi / api / action / phonebook / ContactAdd.java
blobc4c3302db5a3831e8d91064ea09ecd313157fca4
1 package pl.smsapi.api.action.phonebook;
3 import java.net.URI;
4 import java.net.URISyntaxException;
5 import java.util.ArrayList;
6 import java.util.Calendar;
7 import java.util.GregorianCalendar;
9 import org.json.JSONObject;
10 import pl.smsapi.api.action.BaseAction;
11 import pl.smsapi.api.response.ContactResponse;
13 public class ContactAdd extends BaseAction<ContactResponse> {
15 private ArrayList<String> groups = new ArrayList<String>();
17 @Override
18 public URI uri() throws URISyntaxException {
20 String query;
22 query = paramsLoginToQuery();
24 query += paramsOther();
26 if (!groups.isEmpty()) {
27 String tmp[] = new String[groups.size()];
28 groups.toArray(tmp);
29 query += "&groups=" + join(tmp, ",");
32 return new URI(proxy.getProtocol(), null, proxy.getHost(), proxy.getPort(), proxy.getPath()+"phonebook.do", query, null);
35 public ContactAdd setNumber(String number) {
36 params.put("add_contact", number);
37 return this;
40 public ContactAdd setFirstName(String firstName) {
41 params.put("first_name", firstName);
42 return this;
45 public ContactAdd setLastName(String lastName) {
46 params.put("last_name", lastName);
47 return this;
50 public ContactAdd setInfo(String info) {
51 params.put("info", info);
52 return this;
55 public ContactAdd setEmail(String email) {
56 params.put("email", email);
57 return this;
60 public ContactAdd setBirthday(String birthday) {
61 params.put("birthday", birthday);
62 return this;
65 public ContactAdd setBirthday(GregorianCalendar cal) {
66 String tmp = Integer.toString(cal.get(Calendar.DAY_OF_MONTH))
67 + "." + Integer.toString(cal.get(Calendar.MONTH))
68 + "." + Integer.toString(cal.get(Calendar.YEAR));
69 params.put("birthday", tmp);
70 return this;
73 public ContactAdd setCity(String city) {
74 params.put("city", city);
75 return this;
78 public ContactAdd setGender(ContactResponse.Gender gender) {
79 params.put("gender", gender.type().toString());
80 return this;
83 public ContactAdd setGender(String gender) {
85 if (gender.equalsIgnoreCase(ContactResponse.Gender.FEMALE.name())) {
86 setGender(ContactResponse.Gender.FEMALE);
87 } else if (gender.equalsIgnoreCase(ContactResponse.Gender.MALE.name())) {
88 setGender(ContactResponse.Gender.MALE);
92 return this;
95 public ContactAdd setGroup(String group) {
96 groups.add(group);
97 return this;
100 public ContactAdd setGroups(String[] groups) {
101 for (String item : groups) {
102 setGroup(item);
104 return this;
107 protected ContactResponse createResponse(String data) {
108 JSONObject jsonObject = new JSONObject(data);
109 return
110 new ContactResponse(
111 jsonObject.getString("number"),
112 jsonObject.optString("first_name"),
113 jsonObject.optString("last_name"),
114 jsonObject.optString("info"),
115 jsonObject.optString("birthday"),
116 jsonObject.optString("city"),
117 jsonObject.optString("gender"),
118 jsonObject.optInt("date_add"),
119 jsonObject.optInt("date_mod")