{"action":"opened","issue":{"url":"https://api.github.com/repos/eviljoe/evilmusic/issues/36","labels_url":"https://api.github.com/repos/eviljoe/evilmusic/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/eviljoe/evilmusic/issues/36/comments","events_url":"https://api.github.com/repos/eviljoe/evilmusic/issues/36/events","html_url":"https://github.com/eviljoe/evilmusic/issues/36","id":102565829,"number":36,"title":"Reduce Server Complexity","user":{"login":"eviljoe","id":7276751,"avatar_url":"https://avatars.githubusercontent.com/u/7276751?v=3","gravatar_id":"","url":"https://api.github.com/users/eviljoe","html_url":"https://github.com/eviljoe","followers_url":"https://api.github.com/users/eviljoe/followers","following_url":"https://api.github.com/users/eviljoe/following{/other_user}","gists_url":"https://api.github.com/users/eviljoe/gists{/gist_id}","starred_url":"https://api.github.com/users/eviljoe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eviljoe/subscriptions","organizations_url":"https://api.github.com/users/eviljoe/orgs","repos_url":"https://api.github.com/users/eviljoe/repos","events_url":"https://api.github.com/users/eviljoe/events{/privacy}","received_events_url":"https://api.github.com/users/eviljoe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-22T20:44:19Z","updated_at":"2015-08-22T20:44:19Z","closed_at":null,"body":"EvilMusic uses spring auto-generated DAOs.  While not much code is necessary, it requires a ton of different layers:\r\n 1. REST Endpoint Layer\r\n 1. DAO Interface\r\n 1. DAO Impl\r\n 1. Spring Repo.\r\n\r\nAlso, the `RepoManager` is a static class used instead of spring injection.\r\n\r\nIt shouldn't be this complicated.  The following should be done:\r\n - Remove `RepoManager` and use spring injection\r\n - Reduce to two server layers: REST endpoint layer, DAO layer\r\n  - Don't have an interface for the DAO.  As of this point in time, there is only going to be one implentation of the DAO layer.  It is stupid to extract stuff out into an interface when there is only one impl.\r\n  - The DAO layer is the only layer that has access to the entity manger.  The REST endpoint layer will only have access to the DAOs.\r\n"}}