From 0c75ab2b5adbfe4636fbd823982167f79a6e2263 Mon Sep 17 00:00:00 2001 From: bancika Date: Fri, 21 Oct 2016 12:35:35 +0200 Subject: [PATCH] remove MySql references switch to DIYLC php-based service --- .../diylc-swing/.classpath | 1 + .../diylc-swing/lib/diylc-core.jar | Bin 211347 -> 211347 bytes .../diylc-swing/lib/http-proxy.jar | Bin 0 -> 10322 bytes .../diylc-swing/library/main.jar | Bin 290483 -> 290483 bytes .../swing/plugins/online/OnlineManager.java | 8 +- .../org/diylc/swing/plugins/online/Test.java | 28 --- .../plugins/online/model/ProjectEntity.java | 89 +++++++-- ...eption.java => DIYLCServiceException.java} | 2 +- .../plugins/online/presenter/IServiceAPI.java | 137 ++++++++++++++ .../online/presenter/LibraryPresenter.java | 172 +----------------- .../online/presenter/MySqlDBManager.java | 86 --------- .../diylc-swing/test/org/diylc/TableTest.java | 4 +- 12 files changed, 223 insertions(+), 304 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/http-proxy.jar delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java rename diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/{AlreadyExistsException.java => DIYLCServiceException.java} (62%) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/IServiceAPI.java delete mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath index b7926aca..93e615fe 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.classpath @@ -13,6 +13,7 @@ + diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index 11fc89f17d117cfefb461246a136592e6c7f0540..2423721d8ac87d10de77eb792f8297cec0dd5ce9 100644 GIT binary patch delta 3925 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%0DOKQH(n)iG5IcU`-0v)(rfEZA`jhn} zLcf;GO#?$|ozp=7Qf|Dzax95ZF}o|)`vK$A5N}eN_E!{hbmP}5_*+{O8JMo@=vMBH z-6wp3iT>Fg1;TsVmHX>`FEX2~WXFR^+c7cv)G$qplk@bX_F6qB`pg554-H$u`}2OR zD`T*l0`vaKvo-*)T&hsa$mLTZ!1UfOSInb-tqYZmv5pfn6lQEPkpP9dEaWc8j2%{T zQ=#_h$#-J^t0i6{=~W`jL;wY<*5KF&W>kBSiUrzn)~O;+O0u z`4q0qnSFWdjUY|yiSk_E5urQ=_YkTgpE*Fr;ns~l5s!h##jM!0<7Q3U5TYOKqY?U` zi`$F`{p2j%m+|>=vJD1oIR8ZQRpNKQAjblr)QVB!R-7?L)&|NaU_^gI)P)+iz9X;t zfNsM*;)1O)hB;lJBHy!8k3w(Er0*$|Fqf`X<9I)kCI`tiH*PMZ&%qKIp>|rVtR1QJ zv_gsLv`6JQ=b)FB?vRUOo3B>WU=_KynLdJjGkQ1D9L3$)LNisAgza>*>f_U$;*~+o z|9Op`#@_bOzs&@$r;q+ud2}73H+*1#i=X|hCeTOIV*K^BZZ=Bt zI@QddKSkeE&Vy&@Z(zfXwzITRaU*}BlL`%8pb5(N{uMeN0f|SyqYqWlBM<2{W&J&6 zL8`#>KJ0<={j(pNfTcG+3TNlwIT_pLGO^oo$#>3YJC(0BmIaxh{EdHXnwTwi>?aI1 z=3pZa)IYA}zWTq{a6h9ikwvMR## zHuwU{y~w7UY%)yzqS$HSzMA%$zotctPs<#mdz8f~)#(W~kAeR74K~9J`i!YDqu!)x ztpS?$9Oz@dVOva~`s6MvvHkrshvL$ z|0eA`6T&Y@;SK)U4UdBt!^4n{_Ta#naKVHs5^hgI^3C5Qlybi!s2d@W^zMR)8zva9Ez>F2B z*|dV!0CRl>uL6*f&DSV#Hg5qCwi3avl~~BFmAn~DMNaJFloJEa&q1aq2gfj#gH;#i z;-vd?QS*a5oMLAluY`bC^Kc%ET|5Vv*Ig){a^XDkR`EPAy}Jr`;GUPs&gTVSdM96) zJf}+n)|J&IfEMay#F=j+AxO0cLwm?Svp z1*S&Sv^I)3()8Cx5l4c>O~|~{B$iDwPnyI^NZ@W3#Y=Fk8JWNqaVe5%Y!Nj}Fx-Mk j<66omc)JS^Pqj delta 2951 zcmZWpc~Dh#6u!R&9z1*^Ac$b8kxWsMJ5v&G6}&2%k$+ymZp6{Oixx!G!;ReI3axO6V~ht62oPXG;5Zn+}}%|~!7`k?!0U2J~0y2Da9N>RG~)jP{rpn5Jw8alfZ8b^Wt;q(X( zbj%CHm@P%i+<U|v0V)C<6)r;3p2 zJ$=X*n6}G>$lUsAsh^Y4mP+Ohg=s4dY&4=~BfAPRZJmi-L{vY9y}+TS;|srAWeiZ1 zqfv?yscto~2rbix1q5KYX>2<>n8MgbZ{W5ku*rxHWU**WaXp7wQD@0xEk2+dtYhc7 z$=SAT;G4lSTv7bgJ#VoI>cm`T(0*CU82bLcj3s07vo^9!4lA>yo^HC}tthR*j`QmR z(W7fK;~4qK4mJQ=*V^@X0z6KpgeB~ESCr+x>dtl^sCHSUmv*Cr9ff^qpYCUCV8EK? z6PAgIU;2#g8x5rv^)VZAT0dLj>3jlO$d3#cs$KexJ>den<=2=Mu14#Td>Tf+X5tP+ zTgLI15k*esOK=>o2Jsji*2U@kemEk{FP7(`wIQA#MiiCETQSEmGe3>GT~17 zOFo3C`vi|f-|J`iKp-UU`;FhkqI+-hb7=jL3vVp&xQn=fzF)YBK{$HttpITho|Cp_ zve0kadF1P-iuLGg3KQN2D1XJrRf7}s8+%N^#q6|8Pxb9G>8k#`Sh{KDQ6d;4ZG&T=^b>Ta-5=^2v=uM z9tr>bv!W4KRnjRM(Yb%GxDL-=>-}6T$9mIGiZKRw#t}2ZMg_Pk%99?75~BaKOw?NX zL^!Gr4~i)`;ma4qSa;AT4fksm21ThIttj_{KJ-Vi8n^k*Rgr^_#pAZv1KIcPmuGSK z+l;c(14bS-sbP(;{%iKT4?Q`fbkQF4li@}f$K|GG%WL{L{M8-pe1h}W+(m5)(&zEa zB>4fhlpQ4LH>x67euLbc5E%{6TwOa$MmwLP`q3;I2jI>u844ggMotG%6(i%FJ5=9@ zk#hhH$4Co+lvuf7#1yE$7b_ot|At~^GJt7u(hQ(6PNx4O9Ev01*mx2a#LGOezaKAi z0Qk%%P&ZrV0@E{F76AxJkTw8o6Ua0$!bB#LsU?xbzl;ED5}9@<$%WwVnk?-A8j@up zfD$A2G{v0B6mz z0zl$iS%!XdWhH>I^GLIDo-76C{5-h`KvJq)jN(*T1HgYiferJikW2GrHJEZN)W;zU z1)Q2jOlumAVK|Md&Q7OEcchc%t_+%DV}>k-fM+vk9y6^n4VX<<5)WHx9vKT{2AE!2 zKsRu0gh|bmSzvlGQ#U!U>(5MzW6q+!_GD4O@!8b!%4|y7pG~DcY@@O4w2?;SQ16vF z#C(<`vmw_#xiS+#V=hJhHkULh3(0HuLOKDFM=474WIlLx=aIW#KCNk0zN`n+m3%5A zvw(Vkvw)Ji6jH9Gg|ZIB=L#ulVi8Tgy@>jf#k8-6VoK3lOxYtBQH9$Vk^8L?u&9Jg zM@lHpy`{9K4W+cW^QDw4VKIqcSxjQrGRjp~M!7yOqnabj=~|vIr=`dW64z8v%f~C| zdS_IUY3B$q*hy1sr#N5PDbCC)VqUDGW4lvDCt<6m;`db(<5@#XvDZ+|JvEdxyp~KG aYpK(rT3SI|9f56ilw!D!8qBJf#eV_!Pd%^z diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java index c40512b2..89df3425 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/OnlineManager.java @@ -45,15 +45,15 @@ public class OnlineManager implements IPlugIn { @Override protected Void doInBackground() throws Exception { - libraryPresenter.connectDb(); + //libraryPresenter.connectDb(); return null; } @Override protected void done() { - if (libraryPresenter.isLoggedIn()) { - - } + // if (libraryPresenter.isLoggedIn()) { + // + // } } }; worker.execute(); diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java deleted file mode 100644 index aee1e52b..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/Test.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.diylc.swing.plugins.online; - -import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.online.presenter.LibraryPresenter; - - -public class Test { - - /** - * @param args - * @throws Exception - */ - public static void main(String[] args) throws Exception { - BasicConfigurator.configure(); - LibraryPresenter pres = new LibraryPresenter(); - // pres.createUser("bancika", "pwd", "bancika@gmail.com"); - System.out.println(pres.fetchCategories()); - pres.login("bancika", "pwd"); - int id = pres.fetchMyProjectRows().get(0).getId(); - // InputStream stream = pres.downloadProjectContent(id); - // byte[] buf = new byte[100]; - // int len = stream.read(buf); - System.out.println(pres.downloadProjectContent(id)); - // System.out.println(pres.hashPassword("bancikabancikabancikabancikabancika")); - pres.dispose(); - } - -} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java index 228307fa..89a27523 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/model/ProjectEntity.java @@ -1,12 +1,7 @@ package org.diylc.swing.plugins.online.model; -import java.awt.event.ActionEvent; import java.io.Serializable; -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.JOptionPane; - public class ProjectEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -16,18 +11,26 @@ public class ProjectEntity implements Serializable { private String description; private String owner; private String category; + private String updated; + private String thumbnailUrl; + private String downloadUrl; public ProjectEntity() { super(); } - public ProjectEntity(int id, String name, String description, String owner, String category) { + public ProjectEntity(int id, String name, String description, String owner, + String category, String updated, String thumbnailUrl, + String downloadUrl) { super(); this.id = id; this.name = name; this.description = description; this.owner = owner; this.category = category; + this.updated = updated; + this.thumbnailUrl = thumbnailUrl; + this.downloadUrl = downloadUrl; } public int getId() { @@ -70,28 +73,59 @@ public class ProjectEntity implements Serializable { this.category = category; } - public Action getDownload() { - - Action a = new AbstractAction() { - - @Override - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null, name); - } - }; - a.putValue(AbstractAction.NAME, "Download"); - return a; + public String getUpdated() { + return updated; } + public void setUpdated(String updated) { + this.updated = updated; + } + + public String getThumbnailUrl() { + return thumbnailUrl; + } + + public void setThumbnailUrl(String thumbnailUrl) { + this.thumbnailUrl = thumbnailUrl; + } + + public String getDownloadUrl() { + return downloadUrl; + } + + public void setDownloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + } + + // public Action getDownload() { + // + // Action a = new AbstractAction() { + // + // @Override + // public void actionPerformed(ActionEvent e) { + // JOptionPane.showMessageDialog(null, name); + // } + // }; + // a.putValue(AbstractAction.NAME, "Download"); + // return a; + // } + // @Override public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((category == null) ? 0 : category.hashCode()); - result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + + ((category == null) ? 0 : category.hashCode()); + result = prime * result + + ((description == null) ? 0 : description.hashCode()); + result = prime * result + + ((downloadUrl == null) ? 0 : downloadUrl.hashCode()); result = prime * result + id; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((owner == null) ? 0 : owner.hashCode()); + result = prime * result + + ((thumbnailUrl == null) ? 0 : thumbnailUrl.hashCode()); + result = prime * result + ((updated == null) ? 0 : updated.hashCode()); return result; } @@ -114,6 +148,11 @@ public class ProjectEntity implements Serializable { return false; } else if (!description.equals(other.description)) return false; + if (downloadUrl == null) { + if (other.downloadUrl != null) + return false; + } else if (!downloadUrl.equals(other.downloadUrl)) + return false; if (id != other.id) return false; if (name == null) { @@ -126,11 +165,21 @@ public class ProjectEntity implements Serializable { return false; } else if (!owner.equals(other.owner)) return false; + if (thumbnailUrl == null) { + if (other.thumbnailUrl != null) + return false; + } else if (!thumbnailUrl.equals(other.thumbnailUrl)) + return false; + if (updated == null) { + if (other.updated != null) + return false; + } else if (!updated.equals(other.updated)) + return false; return true; } @Override public String toString() { - return name; + return name + " by " + owner + " updated on " + updated; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/DIYLCServiceException.java similarity index 62% rename from diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java rename to diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/DIYLCServiceException.java index 412fabea..0b835c76 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/AlreadyExistsException.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/DIYLCServiceException.java @@ -1,6 +1,6 @@ package org.diylc.swing.plugins.online.presenter; -public class AlreadyExistsException extends Exception { +public class DIYLCServiceException extends Exception { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/IServiceAPI.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/IServiceAPI.java new file mode 100644 index 00000000..eb467a6c --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/IServiceAPI.java @@ -0,0 +1,137 @@ +package org.diylc.swing.plugins.online.presenter; + +import java.io.File; +import java.util.List; + +import org.diylc.swing.plugins.online.model.ProjectEntity; + +import com.diyfever.httpproxy.ParamName; + +/*** + * Interface of DIYLC PHP server located at www.diy-fever.com/diylc/api + * + * @author bancika + * + */ +public interface IServiceAPI { + + public static final String URL_KEY = "serviceUrl"; + + /** + * Creates a user with the specified details. + * + * @param username + * @param password + * @param email + * @param website + * @param bio + * @return "Success" if the operation is successful or error message if it + * failed. + */ + String createUser(@ParamName("username") String username, + @ParamName("password") String password, + @ParamName("email") String email, + @ParamName("website") String website, @ParamName("bio") String bio); + + /*** + * Updates user details using token to authenticate. + * + * @param username + * @param token + * @param machineId + * @param email + * @param website + * @param bio + * @return "Success" if the operation is successful or error message if it + * failed. + */ + String updateUser(@ParamName("username") String username, + @ParamName("token") String token, + @ParamName("machineId") String machineId, + @ParamName("email") String email, + @ParamName("website") String website, @ParamName("bio") String bio); + + /*** + * Tries to login with the provided credentials and machineId. + * + * @param username + * @param password + * @param machineId + * @return login token if the login was successful or string literal "Error" + * if it failed. + */ + String login(@ParamName("username") String username, + @ParamName("password") String password, + @ParamName("machineId") String machineId); + + /*** + * Tries to authenticate with the token that was previously created by + * calling login() function. + * + * @param username + * @param password + * @param machineId + * @return "Success" if the login is successful or error message if it + * failed. + */ + String loginWithToken(@ParamName("username") String username, + @ParamName("token") String token, + @ParamName("machineId") String machineId); + + /*** + * Searches for projects that meet the specified search criteria. Supports + * pagination. + * + * @param criteria + * @param category + * @param format + * @param page + * @param itemsPerPage + * @param sort + * @return string with error message if the error occurred or a list of + * {@link ProjectEntity} objects. + */ + Object search(@ParamName("criteria") String criteria, + @ParamName("category") String category, + @ParamName("format") String format, + @ParamName("page") Integer page, + @ParamName("itemsPerPage") Integer itemsPerPage, + @ParamName("sort") String sort); + + /** + * Uploads a project using token to authenticate. + * + * @param username + * @param token + * @param machineId + * @param projectName + * @param category + * @param description + * @param diylcVersion + * @param keywords + * @param thumbnail + * @param project + * @return "Success" if the upload was successful or error message if it + * failed. + */ + String upload(@ParamName("username") String username, + @ParamName("token") String token, + @ParamName("machineId") String machineId, + @ParamName("projectName") String projectName, + @ParamName("category") String category, + @ParamName("description") String description, + @ParamName("diylcVersion") String diylcVersion, + @ParamName("keywords") String keywords, + @ParamName("thumbnail") File thumbnail, + @ParamName("thumbnail") File project); + + /** + * @return a {@link List} of available categories. + */ + List getCategories(); + + /** + * @return a {@link List} of available sortings. + */ + List getAvailableSortings(); +} diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java index e6acd8a4..3a7d225b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/LibraryPresenter.java @@ -1,177 +1,23 @@ package org.diylc.swing.plugins.online.presenter; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.apache.log4j.Logger; -import org.diylc.swing.plugins.online.model.ProjectEntity; +import org.diylc.appframework.miscutils.ConfigurationManager; +import com.diyfever.httpproxy.PhpFlatProxy; +import com.diyfever.httpproxy.ProxyFactory; public class LibraryPresenter { private final static Logger LOG = Logger.getLogger(LibraryPresenter.class); - private static final String DB_HOST = "diy-fever.com"; - private static final String DB_PORT = "3306"; - private static final String DB_USER = "diylc-app"; - private static final String DB_PASS = "zuf7RuS8"; - - private static final String CATEGORY_SQL = "SELECT * FROM diylc.category WHERE 1=1"; - private static final String USER_SQL = "SELECT * FROM diylc.user WHERE name = \"%s\""; - private static final String CREATE_USER_SQL = "INSERT INTO diylc.user (name, password, email) VALUES (\"%s\", \"%s\", \"%s\")"; - private static final String MY_PROJECTS_SQL = "SELECT project_id, name, category_id, description FROM diylc.project WHERE owner_user_id = %s"; - private static final String PROJECT_SQL = "SELECT content FROM diylc.project WHERE project_id = %s"; - private static final String UPLOAD_PROJECT_SQL = "INSERT INTO diylc.project (name, description, content, category_id, owner_user_id) VALUES (\"%s\", \"%s\", \"%s\", %s, %s)"; - private static final String UPDATE_PROJECT_SQL = "UPDATE diylc.project SET name = \"%s\", description = \"%s\", content = \"%s\", category_id = %s WHERE project_id = %s"; - - private MySqlDBManager dbManager; - private MessageDigest messageDigest; - private Integer currentUserId; + private IServiceAPI service; + private String serviceUrl; public LibraryPresenter() { - dbManager = new MySqlDBManager(DB_HOST, DB_PORT, DB_USER, DB_PASS); - try { - messageDigest = MessageDigest.getInstance("MD5"); - } catch (NoSuchAlgorithmException e) { - LOG.error("Could not initialize MD5, algorithm not found."); - } + serviceUrl = ConfigurationManager.getInstance().readString( + IServiceAPI.URL_KEY, "http://www.diy-fever.com/diylc/api"); + ProxyFactory factory = new ProxyFactory(new PhpFlatProxy()); + service = factory.createProxy(IServiceAPI.class, serviceUrl); } - public boolean connectDb() { - try { - dbManager.connectDB(); - return true; - } catch (Exception e) { - LOG.error("Could not connect to the database: " + e.getMessage()); - return false; - } - } - - public void createUser(String userName, String password, String email) throws SQLException, - NotConnectedException, AlreadyExistsException { - LOG.info("Creating user: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - throw new AlreadyExistsException(); - } - dbManager.updateDB(String.format(CREATE_USER_SQL, userName, hashPassword(password), - email)); - resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public boolean login(String userName, String password) throws SQLException, - NotConnectedException { - LOG.info("Logging in as: " + userName); - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(USER_SQL, userName)); - if (resultSet.next()) { - String dbPassword = resultSet.getString("password"); - String hashPassword = hashPassword(password); - if (dbPassword.equals(hashPassword)) { - LOG.info("Logged in as \"" + userName + "\""); - currentUserId = resultSet.getInt("user_id"); - } else { - LOG.info("User name and password do not match."); - } - } - return false; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public Map fetchCategories() throws SQLException, NotConnectedException { - LOG.info("Fetching categories"); - if (dbManager.isConnected()) { - Map categories = new HashMap(); - ResultSet resultSet = dbManager.getResultSet(CATEGORY_SQL); - while (resultSet.next()) { - categories.put(resultSet.getInt("category_id"), resultSet.getString("name")); - } - return categories; - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchMyProjectRows() throws NotLoggedInException, - NotConnectedException, SQLException { - if (dbManager.isConnected()) { - if (isLoggedIn()) { - Map categories = fetchCategories(); - List projects = new ArrayList(); - ResultSet resultSet = dbManager.getResultSet(String.format(MY_PROJECTS_SQL, - currentUserId)); - while (resultSet.next()) { - projects.add(new ProjectEntity(resultSet.getInt("project_id"), resultSet - .getString("name"), resultSet.getString("description"), "", categories - .get(resultSet.getInt("category_id")))); - } - return projects; - } else { - LOG.error("Not logged in"); - throw new NotLoggedInException(); - } - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public String downloadProjectContent(int projectId) throws NotConnectedException, - NotExistsException, SQLException { - if (dbManager.isConnected()) { - ResultSet resultSet = dbManager.getResultSet(String.format(PROJECT_SQL, projectId)); - if (resultSet.next()) { - return resultSet.getString("content"); - } - throw new NotExistsException("Project with id = " + projectId + " does not exist."); - } else { - LOG.error("Not connected"); - throw new NotConnectedException(); - } - } - - public List fetchProjectRows(String searchCriteria) { - return null; - } - - public boolean isLoggedIn() { - return currentUserId != null; - } - - public String hashPassword(String password) { - messageDigest.reset(); - byte[] bytes = messageDigest.digest(password.getBytes()); - String md5 = ""; - for (byte b : bytes) { - String str = Integer.toHexString(b); - if (str.length() == 1) { - str = "0" + str; - } - md5 += str.substring(str.length() - 2); - } - return md5; - } - - public void dispose() { - dbManager.closeConnection(); - } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java deleted file mode 100644 index 186ba407..00000000 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/online/presenter/MySqlDBManager.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.diylc.swing.plugins.online.presenter; - -import java.sql.Connection; -import java.sql.Driver; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import org.apache.log4j.Logger; - -public class MySqlDBManager { - - private final static Logger LOG = Logger.getLogger(MySqlDBManager.class); - - protected Connection connection; - protected Statement statement; - protected ResultSet resultSet; - protected String url; - protected String user; - protected String pass; - protected boolean connected; - - public MySqlDBManager(String url, String user, String pass) { - this.url = url; - this.user = user; - this.pass = pass; - this.connected = false; - } - - public MySqlDBManager(String host, String port, String userName, String password) { - this(String.format("jdbc:mysql://%s%s", host, port.trim().equals("") ? "" : (":" + port)), - userName, password); - } - - public void connectDB() throws Exception { - if (!connected) { - Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); - DriverManager.registerDriver(driver); - String finalUrl = String.format("%s?user=%s&password=%s", url, user, pass); - LOG.info("Trying to connect to: " + url); - connection = DriverManager.getConnection(finalUrl); - statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, - ResultSet.CONCUR_READ_ONLY); - connected = true; - } - } - - public boolean isConnected() { - return connected; - } - - public void closeConnection() { - LOG.info("Closing connection."); - try { - if (resultSet != null) { - resultSet.close(); - } - if (statement != null) { - statement.close(); - } - if (connection != null) { - connection.close(); - } - connected = false; - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public ResultSet getResultSet(String query) throws SQLException { - LOG.info("Executing query: " + query); - resultSet = statement.executeQuery(query); - return resultSet; - } - - public Connection getConnection() { - return connection; - } - - public int updateDB(String query) throws SQLException { - LOG.info("Executing query: " + query); - statement.execute(query); - return statement.getUpdateCount(); - } -} \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java index 21578424..71f3e8bc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java @@ -22,8 +22,8 @@ public class TableTest { BasicConfigurator.configure(); List projects = new ArrayList(); - projects.add(new ProjectEntity(1, "first", "some text", "bane", "none")); - projects.add(new ProjectEntity(2, "second", "anoter text", "bisera", "none")); + projects.add(new ProjectEntity(1, "first", "some text", "bane", "none", "", "", "")); + projects.add(new ProjectEntity(2, "second", "anoter text", "bisera", "none", "", "", "")); ObjectListTable t = new ObjectListTable(ProjectEntity.class, new String[] { "getName", "getDescription", "getCategory", "getOwner",