mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[ADD] pms_api_rest: add rss_post service, datamodel and add feed_rss module in pms_api_rest depends
This commit is contained in:
committed by
Darío Lodeiros
parent
e0a29a27d5
commit
4051e540de
@@ -15,6 +15,7 @@
|
|||||||
"base_location",
|
"base_location",
|
||||||
"l10n_es_aeat",
|
"l10n_es_aeat",
|
||||||
"sql_export_excel",
|
"sql_export_excel",
|
||||||
|
"feed_rss",
|
||||||
],
|
],
|
||||||
"external_dependencies": {
|
"external_dependencies": {
|
||||||
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
||||||
|
|||||||
@@ -61,3 +61,5 @@ from . import pms_notification
|
|||||||
from . import pms_reservation_message
|
from . import pms_reservation_message
|
||||||
from . import pms_avail
|
from . import pms_avail
|
||||||
from . import pms_dashboard
|
from . import pms_dashboard
|
||||||
|
from . import feed_post
|
||||||
|
|
||||||
|
|||||||
15
pms_api_rest/datamodels/feed_post.py
Normal file
15
pms_api_rest/datamodels/feed_post.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
from odoo.addons.datamodel.core import Datamodel
|
||||||
|
|
||||||
|
|
||||||
|
class FeedPost(Datamodel):
|
||||||
|
_name ="feed.post.info"
|
||||||
|
postId = fields.String(required=True, allow_none=False)
|
||||||
|
title = fields.String(required=True, allow_none=False)
|
||||||
|
link = fields.String(required=True, allow_none=False)
|
||||||
|
description = fields.String(required=True, allow_none=False)
|
||||||
|
publishDate = fields.String(required=True, allow_none=False)
|
||||||
|
author = fields.String(required=True, allow_none=False)
|
||||||
|
imageUrl = fields.String(required=True, allow_none=False)
|
||||||
|
|
||||||
@@ -43,3 +43,4 @@ from . import pms_notification_service
|
|||||||
from . import pms_avail_service
|
from . import pms_avail_service
|
||||||
from . import pms_user_service
|
from . import pms_user_service
|
||||||
from . import pms_dashboard_service
|
from . import pms_dashboard_service
|
||||||
|
from . import feed_post_service
|
||||||
|
|||||||
39
pms_api_rest/services/feed_post_service.py
Normal file
39
pms_api_rest/services/feed_post_service.py
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
from odoo.addons.base_rest import restapi
|
||||||
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
|
from odoo.addons.component.core import Component
|
||||||
|
|
||||||
|
|
||||||
|
class PmsFeedRss(Component):
|
||||||
|
_inherit = "base.rest.service"
|
||||||
|
_name = "pms.feed.rss.service"
|
||||||
|
_usage = "feed-posts"
|
||||||
|
_collection = "pms.services"
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("feed.post.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_feed_posts(self):
|
||||||
|
result_rss = []
|
||||||
|
PmsFeedRss = self.env.datamodels["feed.post.info"]
|
||||||
|
for rss in self.env["rss.post"].search([], limit=5, order='publish_date desc'):
|
||||||
|
result_rss.append(
|
||||||
|
PmsFeedRss(
|
||||||
|
postId=rss.post_id,
|
||||||
|
title=rss.title,
|
||||||
|
link=rss.link,
|
||||||
|
description=rss.description,
|
||||||
|
publishDate=str(rss.publish_date),
|
||||||
|
author=rss.author if rss.author else "",
|
||||||
|
imageUrl=rss.image_url if rss.image_url else "",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_rss
|
||||||
Reference in New Issue
Block a user