mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 06:42:16 +00:00
Switch to using a document key for PK
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# encoding: utf-8
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
|
||||
# Delete all records
|
||||
db.execute("DELETE FROM eve_proxy_cacheddocument")
|
||||
|
||||
# Removing unique constraint on 'CachedDocument', fields ['url_path']
|
||||
db.delete_unique('eve_proxy_cacheddocument', ['url_path'])
|
||||
|
||||
# Deleting field 'CachedDocument.id'
|
||||
db.delete_column('eve_proxy_cacheddocument', 'id')
|
||||
|
||||
# Adding field 'CachedDocument.doc_key'
|
||||
db.add_column('eve_proxy_cacheddocument', 'doc_key', self.gf('django.db.models.fields.CharField')(default='xxx', max_length=40, primary_key=True), keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
|
||||
# User chose to not deal with backwards NULL issues for 'CachedDocument.id'
|
||||
raise RuntimeError("Cannot reverse this migration. 'CachedDocument.id' and its values cannot be restored.")
|
||||
|
||||
# Deleting field 'CachedDocument.doc_key'
|
||||
db.delete_column('eve_proxy_cacheddocument', 'doc_key')
|
||||
|
||||
# Adding unique constraint on 'CachedDocument', fields ['url_path']
|
||||
db.create_unique('eve_proxy_cacheddocument', ['url_path'])
|
||||
|
||||
|
||||
models = {
|
||||
'eve_proxy.apiaccesslog': {
|
||||
'Meta': {'ordering': "['time_access']", 'object_name': 'ApiAccessLog'},
|
||||
'document': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'service': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'time_access': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'userid': ('django.db.models.fields.IntegerField', [], {})
|
||||
},
|
||||
'eve_proxy.cacheddocument': {
|
||||
'Meta': {'ordering': "['time_retrieved']", 'object_name': 'CachedDocument'},
|
||||
'body': ('django.db.models.fields.TextField', [], {}),
|
||||
'cached_until': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'doc_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'primary_key': 'True'}),
|
||||
'time_retrieved': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'url_path': ('django.db.models.fields.CharField', [], {'max_length': '255'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['eve_proxy']
|
||||
@@ -54,20 +54,15 @@ class CachedDocumentManager(models.Manager):
|
||||
"""
|
||||
|
||||
url = self.construct_url(url_path, params)
|
||||
doc_key = hashlib.sha1(url).hexdigest()
|
||||
|
||||
|
||||
try:
|
||||
doc = super(CachedDocumentManager, self).get_query_set().get(url_path=url)
|
||||
except self.model.MultipleObjectsReturned:
|
||||
super(CachedDocumentManager, self).get_query_set().filter(url_path=url).delete()
|
||||
doc = CachedDocument(url_path=url)
|
||||
doc = super(CachedDocumentManager, self).get_query_set().get(pk=doc_key)
|
||||
except self.model.DoesNotExist:
|
||||
doc = CachedDocument(url_path=url)
|
||||
doc = CachedDocument(pk=doc_key, url_path=url)
|
||||
|
||||
if doc.pk and no_cache:
|
||||
doc.delete()
|
||||
doc = CachedDocument(url_path=url)
|
||||
|
||||
if not doc.cached_until or datetime.utcnow() > doc.cached_until:
|
||||
if not doc.cached_until or datetime.utcnow() > doc.cached_until or no_cache:
|
||||
|
||||
req = urllib2.Request(url)
|
||||
req.add_header('CCP-Contact', 'matalok@pleaseignore.com')
|
||||
@@ -113,7 +108,8 @@ class CachedDocument(models.Model):
|
||||
"""
|
||||
This is a cached XML document from the EVE API.
|
||||
"""
|
||||
url_path = models.CharField(max_length=255, unique=True)
|
||||
doc_key = models.CharField(max_length=40, primary_key=True)
|
||||
url_path = models.CharField(max_length=255)
|
||||
body = models.TextField()
|
||||
time_retrieved = models.DateTimeField(blank=True, null=True)
|
||||
cached_until = models.DateTimeField(blank=True, null=True)
|
||||
|
||||
Reference in New Issue
Block a user