add source.list, source.create and source.get messages
This commit is contained in:
parent
b567fd88ac
commit
b4c48ebc10
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
uri: source.create
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Créer une source.
|
||||||
|
|
||||||
|
pattern: rpc
|
||||||
|
|
||||||
|
public: true
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
source_name:
|
||||||
|
type: String
|
||||||
|
shortarg: n
|
||||||
|
description: |
|
||||||
|
Nom de la source.
|
||||||
|
source_url:
|
||||||
|
type: String
|
||||||
|
shortarg: u
|
||||||
|
description: |
|
||||||
|
URL de téléchargement de la source.
|
||||||
|
|
||||||
|
response:
|
||||||
|
type: 'Source'
|
||||||
|
description: Information sur la source.
|
|
@ -1,4 +1,4 @@
|
||||||
uri: source.dataset.updated
|
uri: source.dataset.update
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
Initialise la table pour les versions.
|
Initialise la table pour les versions.
|
||||||
|
@ -8,14 +8,10 @@ pattern: rpc
|
||||||
public: true
|
public: true
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
source_name:
|
source_id:
|
||||||
type: String
|
type: Number
|
||||||
shortarg: s
|
shortarg: s
|
||||||
description: Nom de la source.
|
description: ID de la source.
|
||||||
source_url:
|
|
||||||
type: String
|
|
||||||
shortarg: u
|
|
||||||
description: URL de la source.
|
|
||||||
release_name:
|
release_name:
|
||||||
type: String
|
type: String
|
||||||
shortarg: r
|
shortarg: r
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
uri: source.get
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Retourne une source.
|
||||||
|
|
||||||
|
pattern: rpc
|
||||||
|
|
||||||
|
public: true
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
source_name:
|
||||||
|
type: String
|
||||||
|
shortarg: n
|
||||||
|
description: |
|
||||||
|
Nom de la source.
|
||||||
|
|
||||||
|
response:
|
||||||
|
type: 'Source'
|
||||||
|
description: Information sur la source.
|
|
@ -1,18 +1,13 @@
|
||||||
---
|
---
|
||||||
uri: servermodel.source.list
|
uri: source.list
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
Retourne la liste des sources.
|
Retourne la liste des sources.
|
||||||
|
|
||||||
sampleuse: |
|
|
||||||
zephir-client servermodel.source.list
|
|
||||||
|
|
||||||
pattern: rpc
|
pattern: rpc
|
||||||
|
|
||||||
public: true
|
public: true
|
||||||
|
|
||||||
domain: servermodel-domain
|
|
||||||
|
|
||||||
response:
|
response:
|
||||||
type: '[]Dict'
|
type: '[]Source'
|
||||||
description: Liste des sources disponibles.
|
description: Liste des sources disponibles.
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
title: Source
|
||||||
|
type: object
|
||||||
|
description: Description d'un source.
|
||||||
|
properties:
|
||||||
|
source_id:
|
||||||
|
type: number
|
||||||
|
description: ID de la source.
|
||||||
|
ref: Source.SourceId
|
||||||
|
source_name:
|
||||||
|
type: string
|
||||||
|
description: Nom de la source.
|
||||||
|
source_url:
|
||||||
|
type: string
|
||||||
|
description: URL de téléchargement de la source.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- source_id
|
||||||
|
- source_name
|
||||||
|
- source_url
|
|
@ -22,5 +22,6 @@ def get_config():
|
||||||
'global': {'message_root_path': 'messages',
|
'global': {'message_root_path': 'messages',
|
||||||
'debug': DEBUG,
|
'debug': DEBUG,
|
||||||
'internal_user': 'internal',
|
'internal_user': 'internal',
|
||||||
'rougail_dtd_path': '../rougail/data/creole.dtd'}
|
'rougail_dtd_path': '../rougail/data/creole.dtd'},
|
||||||
|
'source': {'root_path': '/srv/seed'}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ class Risotto(Controller):
|
||||||
|
|
||||||
def parse_parents(self,
|
def parse_parents(self,
|
||||||
servermodels: Dict,
|
servermodels: Dict,
|
||||||
servermodel: Dist,
|
servermodel: Dict,
|
||||||
parents: List=None) -> List:
|
parents: List=None) -> List:
|
||||||
if parents is None:
|
if parents is None:
|
||||||
parents = [servermodel]
|
parents = [servermodel]
|
||||||
|
@ -95,7 +95,7 @@ class Risotto(Controller):
|
||||||
if not servermodels[new_servermodel]['done']:
|
if not servermodels[new_servermodel]['done']:
|
||||||
servermodel_description = servermodels[new_servermodel]
|
servermodel_description = servermodels[new_servermodel]
|
||||||
parent = servermodel_description['parent']
|
parent = servermodel_description['parent']
|
||||||
if not servermodelparent_id and parent None:
|
if not servermodelparent_id and parent is not None:
|
||||||
# parent is a str, so get ID
|
# parent is a str, so get ID
|
||||||
servermodelparent_id = [await self.get_servermodel_id_by_name(risotto_context,
|
servermodelparent_id = [await self.get_servermodel_id_by_name(risotto_context,
|
||||||
parent,
|
parent,
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
|
from typing import Dict, List
|
||||||
from ...controller import Controller
|
from ...controller import Controller
|
||||||
from ...register import register
|
from ...register import register
|
||||||
|
from ...context import Context
|
||||||
|
|
||||||
VERSION_INIT = """
|
VERSION_INIT = """
|
||||||
-- Création de la table Source
|
-- Création de la table Source
|
||||||
|
@ -21,19 +23,55 @@ CREATE TABLE Release (
|
||||||
RELEASE_QUERY = """SELECT ReleaseId as release_id, SourceName as source_name, SourceURL as source_url, ReleaseName as release_name FROM Release, Source WHERE Source.SourceId=Release.ReleaseSourceId"""
|
RELEASE_QUERY = """SELECT ReleaseId as release_id, SourceName as source_name, SourceURL as source_url, ReleaseName as release_name FROM Release, Source WHERE Source.SourceId=Release.ReleaseSourceId"""
|
||||||
|
|
||||||
class Risotto(Controller):
|
class Risotto(Controller):
|
||||||
|
@register('v1.source.create', None, database=True)
|
||||||
@register('v1.source.dataset.updated', None, database=True)
|
async def source_create(self,
|
||||||
async def version_update(self, risotto_context, source_name, source_url, release_name):
|
risotto_context: Context,
|
||||||
|
source_name: str,
|
||||||
|
source_url: str) -> Dict:
|
||||||
source_upsert = """INSERT INTO Source(SourceName, SourceURL) VALUES ($1, $2)
|
source_upsert = """INSERT INTO Source(SourceName, SourceURL) VALUES ($1, $2)
|
||||||
ON CONFLICT (SourceName) DO UPDATE SET SourceURL = $2
|
ON CONFLICT (SourceName) DO UPDATE SET SourceURL = $2
|
||||||
RETURNING SourceId
|
RETURNING SourceId
|
||||||
"""
|
"""
|
||||||
|
source_id = await risotto_context.connection.fetchval(source_upsert,
|
||||||
|
source_name,
|
||||||
|
source_url)
|
||||||
|
return {'source_name': source_name,
|
||||||
|
'source_url': source_url,
|
||||||
|
'source_id': source_id}
|
||||||
|
|
||||||
|
@register('v1.source.get', None, database=True)
|
||||||
|
async def source_get(self,
|
||||||
|
risotto_context: Context,
|
||||||
|
source_name: str) -> Dict:
|
||||||
|
source_get = """SELECT SourceId as source_id, SourceName as source_name, SourceURL as source_url
|
||||||
|
FROM Source
|
||||||
|
WHERE SourceName = $1
|
||||||
|
"""
|
||||||
|
return dict(await risotto_context.connection.fetchrow(source_get,
|
||||||
|
source_name))
|
||||||
|
|
||||||
|
@register('v1.source.list', None, database=True)
|
||||||
|
async def source_list(self,
|
||||||
|
risotto_context: Context) -> List[Dict]:
|
||||||
|
source_list = """SELECT SourceId as source_id, SourceName as source_name, SourceURL as source_url
|
||||||
|
FROM Source
|
||||||
|
"""
|
||||||
|
result = await risotto_context.connection.fetch(source_list)
|
||||||
|
return [dict(r) for r in result]
|
||||||
|
|
||||||
|
@register('v1.source.dataset.update', None, database=True)
|
||||||
|
async def version_update(self,
|
||||||
|
risotto_context: Context,
|
||||||
|
source_id: int,
|
||||||
|
release_name: str):
|
||||||
release_insert = """INSERT INTO Release(ReleaseName, ReleaseSourceId) VALUES ($1, $2)
|
release_insert = """INSERT INTO Release(ReleaseName, ReleaseSourceId) VALUES ($1, $2)
|
||||||
RETURNING ReleaseId
|
RETURNING ReleaseId
|
||||||
"""
|
"""
|
||||||
source_id = await risotto_context.connection.fetchval(source_upsert, source_name, source_url)
|
release_id = await risotto_context.connection.fetchval(release_insert,
|
||||||
result = await risotto_context.connection.fetchval(release_insert, release_name, source_id)
|
release_name,
|
||||||
return {'release_id': result, 'source_name': source_name, 'source_url': source_url, 'release_name': release_name}
|
source_id)
|
||||||
|
return {'release_id': release_id,
|
||||||
|
'release_name': release_name}
|
||||||
|
|
||||||
@register('v1.source.release.list', None, database=True)
|
@register('v1.source.release.list', None, database=True)
|
||||||
async def release_list(self, risotto_context):
|
async def release_list(self, risotto_context):
|
||||||
|
|
Loading…
Reference in New Issue