changeset 2508:43cb5b6047fd beta

Added functions for getting API data to repo and user models
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 26 Jun 2012 02:21:06 +0200
parents 374693af2849
children 955956f4bdda
files rhodecode/model/db.py
diffstat 1 files changed, 41 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/db.py	Mon Jun 25 23:20:27 2012 +0200
+++ b/rhodecode/model/db.py	Tue Jun 26 02:21:06 2012 +0200
@@ -427,6 +427,26 @@
         Session.add(self)
         log.debug('updated user %s lastlogin' % self.username)
 
+    def get_api_data(self):
+        """
+        Common function for generating user related data for API
+        """
+        user = self
+        data = dict(
+            id=user.user_id,
+            username=user.username,
+            api_key=user.api_key,
+            firstname=user.name,
+            lastname=user.lastname,
+            email=user.email,
+            emails=user.emails,
+            active=user.active,
+            admin=user.admin,
+            ldap_dn=user.ldap_dn,
+            last_login=user.last_login,
+        )
+        return data
+
     def __json__(self):
         return dict(
             user_id=self.user_id,
@@ -734,6 +754,27 @@
 
         return is_valid_repo(repo_name, cls.base_path())
 
+    def get_api_data(self):
+        """
+        Common function for generating repo api data
+
+        """
+        repo = self
+        data = dict(
+            id=repo.repo_id,
+            repo_name=repo.repo_name,
+            repo_type=repo.repo_type,
+            clone_uri=repo.clone_uri,
+            private=repo.private,
+            created_on=repo.created_on,
+            description=repo.description,
+            landing_rev=repo.landing_rev,
+            owner=repo.user.username,
+            fork_of=repo.fork.repo_name if repo.fork else None
+        )
+
+        return data
+
     #==========================================================================
     # SCM PROPERTIES
     #==========================================================================