@23blocks/block-content 1.0.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +577 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/block-content.d.ts +2 -0
- package/dist/src/lib/block-content.d.ts.map +1 -0
- package/dist/src/lib/content.block.d.ts +15 -0
- package/dist/src/lib/content.block.d.ts.map +1 -0
- package/dist/src/lib/mappers/category.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/category.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/comment.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/comment.mapper.d.ts.map +1 -0
- package/dist/{lib/mappers/index.js → src/lib/mappers/index.d.ts} +1 -2
- package/dist/src/lib/mappers/index.d.ts.map +1 -0
- package/dist/src/lib/mappers/post.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/post.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/tag.mapper.d.ts +4 -0
- package/dist/src/lib/mappers/tag.mapper.d.ts.map +1 -0
- package/dist/src/lib/mappers/utils.d.ts +29 -0
- package/dist/src/lib/mappers/utils.d.ts.map +1 -0
- package/dist/src/lib/services/categories.service.d.ts +15 -0
- package/dist/src/lib/services/categories.service.d.ts.map +1 -0
- package/dist/src/lib/services/comments.service.d.ts +15 -0
- package/dist/src/lib/services/comments.service.d.ts.map +1 -0
- package/dist/{lib/services/index.js → src/lib/services/index.d.ts} +1 -2
- package/dist/src/lib/services/index.d.ts.map +1 -0
- package/dist/src/lib/services/posts.service.d.ts +20 -0
- package/dist/src/lib/services/posts.service.d.ts.map +1 -0
- package/dist/src/lib/services/tags.service.d.ts +13 -0
- package/dist/src/lib/services/tags.service.d.ts.map +1 -0
- package/dist/src/lib/types/category.d.ts +51 -0
- package/dist/src/lib/types/category.d.ts.map +1 -0
- package/dist/src/lib/types/comment.d.ts +59 -0
- package/dist/src/lib/types/comment.d.ts.map +1 -0
- package/dist/{lib/types/index.js → src/lib/types/index.d.ts} +1 -2
- package/dist/src/lib/types/index.d.ts.map +1 -0
- package/dist/src/lib/types/post.d.ts +84 -0
- package/dist/src/lib/types/post.d.ts.map +1 -0
- package/dist/src/lib/types/tag.d.ts +37 -0
- package/dist/src/lib/types/tag.d.ts.map +1 -0
- package/package.json +10 -8
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/lib/block-content.js +0 -5
- package/dist/lib/block-content.js.map +0 -1
- package/dist/lib/content.block.js +0 -22
- package/dist/lib/content.block.js.map +0 -1
- package/dist/lib/mappers/category.mapper.js +0 -38
- package/dist/lib/mappers/category.mapper.js.map +0 -1
- package/dist/lib/mappers/comment.mapper.js +0 -43
- package/dist/lib/mappers/comment.mapper.js.map +0 -1
- package/dist/lib/mappers/index.js.map +0 -1
- package/dist/lib/mappers/post.mapper.js +0 -51
- package/dist/lib/mappers/post.mapper.js.map +0 -1
- package/dist/lib/mappers/tag.mapper.js +0 -21
- package/dist/lib/mappers/tag.mapper.js.map +0 -1
- package/dist/lib/mappers/utils.js +0 -75
- package/dist/lib/mappers/utils.js.map +0 -1
- package/dist/lib/services/categories.service.js +0 -69
- package/dist/lib/services/categories.service.js.map +0 -1
- package/dist/lib/services/comments.service.js +0 -73
- package/dist/lib/services/comments.service.js.map +0 -1
- package/dist/lib/services/index.js.map +0 -1
- package/dist/lib/services/posts.service.js +0 -127
- package/dist/lib/services/posts.service.js.map +0 -1
- package/dist/lib/services/tags.service.js +0 -59
- package/dist/lib/services/tags.service.js.map +0 -1
- package/dist/lib/types/category.js +0 -3
- package/dist/lib/types/category.js.map +0 -1
- package/dist/lib/types/comment.js +0 -3
- package/dist/lib/types/comment.js.map +0 -1
- package/dist/lib/types/index.js.map +0 -1
- package/dist/lib/types/post.js +0 -3
- package/dist/lib/types/post.js.map +0 -1
- package/dist/lib/types/tag.js +0 -3
- package/dist/lib/types/tag.js.map +0 -1
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { parseString, parseDate, parseBoolean, parseOptionalNumber, parseStatus } from './utils';
|
|
2
|
-
export const postMapper = {
|
|
3
|
-
type: 'Post',
|
|
4
|
-
map: (resource)=>({
|
|
5
|
-
id: resource.id,
|
|
6
|
-
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
-
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
-
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
-
postVersionUniqueId: parseString(resource.attributes['post_version_unique_id']),
|
|
10
|
-
title: parseString(resource.attributes['title']) || '',
|
|
11
|
-
abstract: parseString(resource.attributes['abstract']),
|
|
12
|
-
keywords: parseString(resource.attributes['keywords']),
|
|
13
|
-
content: parseString(resource.attributes['content']),
|
|
14
|
-
thumbnailUrl: parseString(resource.attributes['thumbnail_url']),
|
|
15
|
-
imageUrl: parseString(resource.attributes['image_url']),
|
|
16
|
-
mediaUrl: parseString(resource.attributes['media_url']),
|
|
17
|
-
payload: resource.attributes['payload'],
|
|
18
|
-
status: parseStatus(resource.attributes['status']),
|
|
19
|
-
enabled: parseBoolean(resource.attributes['enabled']),
|
|
20
|
-
publishAt: parseDate(resource.attributes['publish_at']),
|
|
21
|
-
publishUntil: parseDate(resource.attributes['publish_until']),
|
|
22
|
-
// User
|
|
23
|
-
userUniqueId: parseString(resource.attributes['user_unique_id']),
|
|
24
|
-
userName: parseString(resource.attributes['user_name']),
|
|
25
|
-
userAlias: parseString(resource.attributes['user_alias']),
|
|
26
|
-
userAvatarUrl: parseString(resource.attributes['user_avatar_url']),
|
|
27
|
-
// Visibility
|
|
28
|
-
isPublic: parseBoolean(resource.attributes['is_public']),
|
|
29
|
-
// Versioning
|
|
30
|
-
version: parseOptionalNumber(resource.attributes['version']),
|
|
31
|
-
// Engagement
|
|
32
|
-
likes: parseOptionalNumber(resource.attributes['likes']),
|
|
33
|
-
dislikes: parseOptionalNumber(resource.attributes['dislikes']),
|
|
34
|
-
comments: parseOptionalNumber(resource.attributes['comments']),
|
|
35
|
-
followers: parseOptionalNumber(resource.attributes['followers']),
|
|
36
|
-
savers: parseOptionalNumber(resource.attributes['savers']),
|
|
37
|
-
// SEO
|
|
38
|
-
slug: parseString(resource.attributes['slug']),
|
|
39
|
-
// AI
|
|
40
|
-
aiGenerated: parseBoolean(resource.attributes['ai_generated']),
|
|
41
|
-
aiModel: parseString(resource.attributes['ai_model']),
|
|
42
|
-
// Moderation
|
|
43
|
-
moderated: parseBoolean(resource.attributes['moderated']),
|
|
44
|
-
moderatedBy: parseString(resource.attributes['moderated_by']),
|
|
45
|
-
moderatedAt: parseDate(resource.attributes['moderated_at']),
|
|
46
|
-
moderationReason: parseString(resource.attributes['moderation_reason']),
|
|
47
|
-
moderationDecision: parseString(resource.attributes['moderation_decision'])
|
|
48
|
-
})
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
//# sourceMappingURL=post.mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/post.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Post } from '../types/post';\nimport { parseString, parseDate, parseBoolean, parseOptionalNumber, parseStatus } from './utils';\n\nexport const postMapper: ResourceMapper<Post> = {\n type: 'Post',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n postVersionUniqueId: parseString(resource.attributes['post_version_unique_id']),\n title: parseString(resource.attributes['title']) || '',\n abstract: parseString(resource.attributes['abstract']),\n keywords: parseString(resource.attributes['keywords']),\n content: parseString(resource.attributes['content']),\n thumbnailUrl: parseString(resource.attributes['thumbnail_url']),\n imageUrl: parseString(resource.attributes['image_url']),\n mediaUrl: parseString(resource.attributes['media_url']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n publishAt: parseDate(resource.attributes['publish_at']),\n publishUntil: parseDate(resource.attributes['publish_until']),\n\n // User\n userUniqueId: parseString(resource.attributes['user_unique_id']),\n userName: parseString(resource.attributes['user_name']),\n userAlias: parseString(resource.attributes['user_alias']),\n userAvatarUrl: parseString(resource.attributes['user_avatar_url']),\n\n // Visibility\n isPublic: parseBoolean(resource.attributes['is_public']),\n\n // Versioning\n version: parseOptionalNumber(resource.attributes['version']),\n\n // Engagement\n likes: parseOptionalNumber(resource.attributes['likes']),\n dislikes: parseOptionalNumber(resource.attributes['dislikes']),\n comments: parseOptionalNumber(resource.attributes['comments']),\n followers: parseOptionalNumber(resource.attributes['followers']),\n savers: parseOptionalNumber(resource.attributes['savers']),\n\n // SEO\n slug: parseString(resource.attributes['slug']),\n\n // AI\n aiGenerated: parseBoolean(resource.attributes['ai_generated']),\n aiModel: parseString(resource.attributes['ai_model']),\n\n // Moderation\n moderated: parseBoolean(resource.attributes['moderated']),\n moderatedBy: parseString(resource.attributes['moderated_by']),\n moderatedAt: parseDate(resource.attributes['moderated_at']),\n moderationReason: parseString(resource.attributes['moderation_reason']),\n moderationDecision: parseString(resource.attributes['moderation_decision']),\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseOptionalNumber","parseStatus","postMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","postVersionUniqueId","title","abstract","keywords","content","thumbnailUrl","imageUrl","mediaUrl","payload","status","enabled","publishAt","publishUntil","userUniqueId","userName","userAlias","userAvatarUrl","isPublic","version","likes","dislikes","comments","followers","savers","slug","aiGenerated","aiModel","moderated","moderatedBy","moderatedAt","moderationReason","moderationDecision"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,WAAW,QAAQ,UAAU;AAEjG,OAAO,MAAMC,aAAmC;IAC9CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUV,YAAYQ,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWX,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWb,UAAUO,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,qBAAqBf,YAAYQ,SAASG,UAAU,CAAC,yBAAyB;YAC9EK,OAAOhB,YAAYQ,SAASG,UAAU,CAAC,QAAQ,KAAK;YACpDM,UAAUjB,YAAYQ,SAASG,UAAU,CAAC,WAAW;YACrDO,UAAUlB,YAAYQ,SAASG,UAAU,CAAC,WAAW;YACrDQ,SAASnB,YAAYQ,SAASG,UAAU,CAAC,UAAU;YACnDS,cAAcpB,YAAYQ,SAASG,UAAU,CAAC,gBAAgB;YAC9DU,UAAUrB,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDW,UAAUtB,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDY,SAASf,SAASG,UAAU,CAAC,UAAU;YACvCa,QAAQpB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDc,SAASvB,aAAaM,SAASG,UAAU,CAAC,UAAU;YACpDe,WAAWzB,UAAUO,SAASG,UAAU,CAAC,aAAa;YACtDgB,cAAc1B,UAAUO,SAASG,UAAU,CAAC,gBAAgB;YAE5D,OAAO;YACPiB,cAAc5B,YAAYQ,SAASG,UAAU,CAAC,iBAAiB;YAC/DkB,UAAU7B,YAAYQ,SAASG,UAAU,CAAC,YAAY;YACtDmB,WAAW9B,YAAYQ,SAASG,UAAU,CAAC,aAAa;YACxDoB,eAAe/B,YAAYQ,SAASG,UAAU,CAAC,kBAAkB;YAEjE,aAAa;YACbqB,UAAU9B,aAAaM,SAASG,UAAU,CAAC,YAAY;YAEvD,aAAa;YACbsB,SAAS9B,oBAAoBK,SAASG,UAAU,CAAC,UAAU;YAE3D,aAAa;YACbuB,OAAO/B,oBAAoBK,SAASG,UAAU,CAAC,QAAQ;YACvDwB,UAAUhC,oBAAoBK,SAASG,UAAU,CAAC,WAAW;YAC7DyB,UAAUjC,oBAAoBK,SAASG,UAAU,CAAC,WAAW;YAC7D0B,WAAWlC,oBAAoBK,SAASG,UAAU,CAAC,YAAY;YAC/D2B,QAAQnC,oBAAoBK,SAASG,UAAU,CAAC,SAAS;YAEzD,MAAM;YACN4B,MAAMvC,YAAYQ,SAASG,UAAU,CAAC,OAAO;YAE7C,KAAK;YACL6B,aAAatC,aAAaM,SAASG,UAAU,CAAC,eAAe;YAC7D8B,SAASzC,YAAYQ,SAASG,UAAU,CAAC,WAAW;YAEpD,aAAa;YACb+B,WAAWxC,aAAaM,SAASG,UAAU,CAAC,YAAY;YACxDgC,aAAa3C,YAAYQ,SAASG,UAAU,CAAC,eAAe;YAC5DiC,aAAa3C,UAAUO,SAASG,UAAU,CAAC,eAAe;YAC1DkC,kBAAkB7C,YAAYQ,SAASG,UAAU,CAAC,oBAAoB;YACtEmC,oBAAoB9C,YAAYQ,SAASG,UAAU,CAAC,sBAAsB;QAC5E,CAAA;AACF,EAAE"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { parseString, parseDate, parseBoolean, parseStatus } from './utils';
|
|
2
|
-
export const tagMapper = {
|
|
3
|
-
type: 'Tag',
|
|
4
|
-
map: (resource)=>({
|
|
5
|
-
id: resource.id,
|
|
6
|
-
uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
|
|
7
|
-
createdAt: parseDate(resource.attributes['created_at']) || new Date(),
|
|
8
|
-
updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
|
|
9
|
-
tag: parseString(resource.attributes['tag']) || '',
|
|
10
|
-
thumbnailUrl: parseString(resource.attributes['thumbnail_url']),
|
|
11
|
-
imageUrl: parseString(resource.attributes['image_url']),
|
|
12
|
-
contentUrl: parseString(resource.attributes['content_url']),
|
|
13
|
-
mediaUrl: parseString(resource.attributes['media_url']),
|
|
14
|
-
payload: resource.attributes['payload'],
|
|
15
|
-
status: parseStatus(resource.attributes['status']),
|
|
16
|
-
enabled: parseBoolean(resource.attributes['enabled']),
|
|
17
|
-
slug: parseString(resource.attributes['slug'])
|
|
18
|
-
})
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=tag.mapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/tag.mapper.ts"],"sourcesContent":["import type { ResourceMapper } from '@23blocks/jsonapi-codec';\nimport type { Tag } from '../types/tag';\nimport { parseString, parseDate, parseBoolean, parseStatus } from './utils';\n\nexport const tagMapper: ResourceMapper<Tag> = {\n type: 'Tag',\n map: (resource) => ({\n id: resource.id,\n uniqueId: parseString(resource.attributes['unique_id']) || resource.id,\n createdAt: parseDate(resource.attributes['created_at']) || new Date(),\n updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),\n\n tag: parseString(resource.attributes['tag']) || '',\n thumbnailUrl: parseString(resource.attributes['thumbnail_url']),\n imageUrl: parseString(resource.attributes['image_url']),\n contentUrl: parseString(resource.attributes['content_url']),\n mediaUrl: parseString(resource.attributes['media_url']),\n payload: resource.attributes['payload'] as Record<string, unknown> | undefined,\n status: parseStatus(resource.attributes['status']),\n enabled: parseBoolean(resource.attributes['enabled']),\n slug: parseString(resource.attributes['slug']),\n }),\n};\n"],"names":["parseString","parseDate","parseBoolean","parseStatus","tagMapper","type","map","resource","id","uniqueId","attributes","createdAt","Date","updatedAt","tag","thumbnailUrl","imageUrl","contentUrl","mediaUrl","payload","status","enabled","slug"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;AAE5E,OAAO,MAAMC,YAAiC;IAC5CC,MAAM;IACNC,KAAK,CAACC,WAAc,CAAA;YAClBC,IAAID,SAASC,EAAE;YACfC,UAAUT,YAAYO,SAASG,UAAU,CAAC,YAAY,KAAKH,SAASC,EAAE;YACtEG,WAAWV,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAC/DC,WAAWZ,UAAUM,SAASG,UAAU,CAAC,aAAa,KAAK,IAAIE;YAE/DE,KAAKd,YAAYO,SAASG,UAAU,CAAC,MAAM,KAAK;YAChDK,cAAcf,YAAYO,SAASG,UAAU,CAAC,gBAAgB;YAC9DM,UAAUhB,YAAYO,SAASG,UAAU,CAAC,YAAY;YACtDO,YAAYjB,YAAYO,SAASG,UAAU,CAAC,cAAc;YAC1DQ,UAAUlB,YAAYO,SAASG,UAAU,CAAC,YAAY;YACtDS,SAASZ,SAASG,UAAU,CAAC,UAAU;YACvCU,QAAQjB,YAAYI,SAASG,UAAU,CAAC,SAAS;YACjDW,SAASnB,aAAaK,SAASG,UAAU,CAAC,UAAU;YACpDY,MAAMtB,YAAYO,SAASG,UAAU,CAAC,OAAO;QAC/C,CAAA;AACF,EAAE"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse a string value, returning undefined for empty/undefined
|
|
3
|
-
*/ export function parseString(value) {
|
|
4
|
-
if (value === null || value === undefined) {
|
|
5
|
-
return undefined;
|
|
6
|
-
}
|
|
7
|
-
const str = String(value);
|
|
8
|
-
return str.length > 0 ? str : undefined;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Parse a date value
|
|
12
|
-
*/ export function parseDate(value) {
|
|
13
|
-
if (value === null || value === undefined) {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
if (value instanceof Date) {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
if (typeof value === 'string' || typeof value === 'number') {
|
|
20
|
-
const date = new Date(value);
|
|
21
|
-
return isNaN(date.getTime()) ? undefined : date;
|
|
22
|
-
}
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parse a boolean value
|
|
27
|
-
*/ export function parseBoolean(value) {
|
|
28
|
-
if (typeof value === 'boolean') {
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
if (value === 'true' || value === '1' || value === 1) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Parse an array of strings
|
|
38
|
-
*/ export function parseStringArray(value) {
|
|
39
|
-
if (value === null || value === undefined) {
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
42
|
-
if (Array.isArray(value)) {
|
|
43
|
-
return value.map(String);
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Parse a number value
|
|
49
|
-
*/ export function parseNumber(value) {
|
|
50
|
-
if (value === null || value === undefined) {
|
|
51
|
-
return 0;
|
|
52
|
-
}
|
|
53
|
-
const num = Number(value);
|
|
54
|
-
return isNaN(num) ? 0 : num;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Parse an optional number value
|
|
58
|
-
*/ export function parseOptionalNumber(value) {
|
|
59
|
-
if (value === null || value === undefined) {
|
|
60
|
-
return undefined;
|
|
61
|
-
}
|
|
62
|
-
const num = Number(value);
|
|
63
|
-
return isNaN(num) ? undefined : num;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Parse entity status
|
|
67
|
-
*/ export function parseStatus(value) {
|
|
68
|
-
const status = parseString(value);
|
|
69
|
-
if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {
|
|
70
|
-
return status;
|
|
71
|
-
}
|
|
72
|
-
return 'active';
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/mappers/utils.ts"],"sourcesContent":["/**\n * Parse a string value, returning undefined for empty/undefined\n */\nexport function parseString(value: unknown): string | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const str = String(value);\n return str.length > 0 ? str : undefined;\n}\n\n/**\n * Parse a date value\n */\nexport function parseDate(value: unknown): Date | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n return isNaN(date.getTime()) ? undefined : date;\n }\n\n return undefined;\n}\n\n/**\n * Parse a boolean value\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n if (value === 'true' || value === '1' || value === 1) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse an array of strings\n */\nexport function parseStringArray(value: unknown): string[] | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.map(String);\n }\n return undefined;\n}\n\n/**\n * Parse a number value\n */\nexport function parseNumber(value: unknown): number {\n if (value === null || value === undefined) {\n return 0;\n }\n const num = Number(value);\n return isNaN(num) ? 0 : num;\n}\n\n/**\n * Parse an optional number value\n */\nexport function parseOptionalNumber(value: unknown): number | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n const num = Number(value);\n return isNaN(num) ? undefined : num;\n}\n\n/**\n * Parse entity status\n */\nexport function parseStatus(value: unknown): 'active' | 'inactive' | 'pending' | 'archived' | 'deleted' {\n const status = parseString(value);\n if (status === 'active' || status === 'inactive' || status === 'pending' || status === 'archived' || status === 'deleted') {\n return status;\n }\n return 'active';\n}\n"],"names":["parseString","value","undefined","str","String","length","parseDate","Date","date","isNaN","getTime","parseBoolean","parseStringArray","Array","isArray","map","parseNumber","num","Number","parseOptionalNumber","parseStatus","status"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,YAAYC,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMC,MAAMC,OAAOH;IACnB,OAAOE,IAAIE,MAAM,GAAG,IAAIF,MAAMD;AAChC;AAEA;;CAEC,GACD,OAAO,SAASI,UAAUL,KAAc;IACtC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IAEA,IAAID,iBAAiBM,MAAM;QACzB,OAAON;IACT;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,MAAMO,OAAO,IAAID,KAAKN;QACtB,OAAOQ,MAAMD,KAAKE,OAAO,MAAMR,YAAYM;IAC7C;IAEA,OAAON;AACT;AAEA;;CAEC,GACD,OAAO,SAASS,aAAaV,KAAc;IACzC,IAAI,OAAOA,UAAU,WAAW;QAC9B,OAAOA;IACT;IACA,IAAIA,UAAU,UAAUA,UAAU,OAAOA,UAAU,GAAG;QACpD,OAAO;IACT;IACA,OAAO;AACT;AAEA;;CAEC,GACD,OAAO,SAASW,iBAAiBX,KAAc;IAC7C,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,IAAIW,MAAMC,OAAO,CAACb,QAAQ;QACxB,OAAOA,MAAMc,GAAG,CAACX;IACnB;IACA,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASc,YAAYf,KAAc;IACxC,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAO;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAO,IAAIA;AAC1B;AAEA;;CAEC,GACD,OAAO,SAASE,oBAAoBlB,KAAc;IAChD,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOA;IACT;IACA,MAAMe,MAAMC,OAAOjB;IACnB,OAAOQ,MAAMQ,OAAOf,YAAYe;AAClC;AAEA;;CAEC,GACD,OAAO,SAASG,YAAYnB,KAAc;IACxC,MAAMoB,SAASrB,YAAYC;IAC3B,IAAIoB,WAAW,YAAYA,WAAW,cAAcA,WAAW,aAAaA,WAAW,cAAcA,WAAW,WAAW;QACzH,OAAOA;IACT;IACA,OAAO;AACT"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { categoryMapper } from '../mappers/category.mapper';
|
|
3
|
-
export function createCategoriesService(transport, _config) {
|
|
4
|
-
return {
|
|
5
|
-
async list (params) {
|
|
6
|
-
const queryParams = {};
|
|
7
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
-
if (params == null ? void 0 : params.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;
|
|
10
|
-
if (params == null ? void 0 : params.withChildren) queryParams['with'] = 'children';
|
|
11
|
-
if (params == null ? void 0 : params.withPosts) queryParams['with'] = params.withChildren ? 'children,posts' : 'posts';
|
|
12
|
-
const response = await transport.get('/content/categories', {
|
|
13
|
-
params: queryParams
|
|
14
|
-
});
|
|
15
|
-
return decodePageResult(response, categoryMapper);
|
|
16
|
-
},
|
|
17
|
-
async get (uniqueId) {
|
|
18
|
-
const response = await transport.get(`/content/categories/${uniqueId}`);
|
|
19
|
-
return decodeOne(response, categoryMapper);
|
|
20
|
-
},
|
|
21
|
-
async create (data) {
|
|
22
|
-
const response = await transport.post('/content/categories', {
|
|
23
|
-
data: {
|
|
24
|
-
type: 'Category',
|
|
25
|
-
attributes: {
|
|
26
|
-
name: data.name,
|
|
27
|
-
description: data.description,
|
|
28
|
-
parent_unique_id: data.parentUniqueId,
|
|
29
|
-
display_order: data.displayOrder,
|
|
30
|
-
image_url: data.imageUrl,
|
|
31
|
-
icon_url: data.iconUrl
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
return decodeOne(response, categoryMapper);
|
|
36
|
-
},
|
|
37
|
-
async update (uniqueId, data) {
|
|
38
|
-
const response = await transport.put(`/content/categories/${uniqueId}`, {
|
|
39
|
-
data: {
|
|
40
|
-
type: 'Category',
|
|
41
|
-
attributes: {
|
|
42
|
-
name: data.name,
|
|
43
|
-
description: data.description,
|
|
44
|
-
parent_unique_id: data.parentUniqueId,
|
|
45
|
-
display_order: data.displayOrder,
|
|
46
|
-
image_url: data.imageUrl,
|
|
47
|
-
icon_url: data.iconUrl,
|
|
48
|
-
enabled: data.enabled,
|
|
49
|
-
status: data.status
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
return decodeOne(response, categoryMapper);
|
|
54
|
-
},
|
|
55
|
-
async delete (uniqueId) {
|
|
56
|
-
await transport.delete(`/content/categories/${uniqueId}`);
|
|
57
|
-
},
|
|
58
|
-
async recover (uniqueId) {
|
|
59
|
-
const response = await transport.put(`/content/categories/${uniqueId}/recover`, {});
|
|
60
|
-
return decodeOne(response, categoryMapper);
|
|
61
|
-
},
|
|
62
|
-
async getChildren (uniqueId) {
|
|
63
|
-
const response = await transport.get(`/content/categories/${uniqueId}/children`);
|
|
64
|
-
return decodeMany(response, categoryMapper);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
//# sourceMappingURL=categories.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/categories.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodeMany, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Category,\n CreateCategoryRequest,\n UpdateCategoryRequest,\n ListCategoriesParams,\n} from '../types/category';\nimport { categoryMapper } from '../mappers/category.mapper';\n\nexport interface CategoriesService {\n list(params?: ListCategoriesParams): Promise<PageResult<Category>>;\n get(uniqueId: string): Promise<Category>;\n create(data: CreateCategoryRequest): Promise<Category>;\n update(uniqueId: string, data: UpdateCategoryRequest): Promise<Category>;\n delete(uniqueId: string): Promise<void>;\n recover(uniqueId: string): Promise<Category>;\n getChildren(uniqueId: string): Promise<Category[]>;\n}\n\nexport function createCategoriesService(transport: Transport, _config: { appId: string }): CategoriesService {\n return {\n async list(params?: ListCategoriesParams): Promise<PageResult<Category>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.parentUniqueId) queryParams['parent_unique_id'] = params.parentUniqueId;\n if (params?.withChildren) queryParams['with'] = 'children';\n if (params?.withPosts) queryParams['with'] = params.withChildren ? 'children,posts' : 'posts';\n\n const response = await transport.get<unknown>('/content/categories', { params: queryParams });\n return decodePageResult(response, categoryMapper);\n },\n\n async get(uniqueId: string): Promise<Category> {\n const response = await transport.get<unknown>(`/content/categories/${uniqueId}`);\n return decodeOne(response, categoryMapper);\n },\n\n async create(data: CreateCategoryRequest): Promise<Category> {\n const response = await transport.post<unknown>('/content/categories', {\n data: {\n type: 'Category',\n attributes: {\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n display_order: data.displayOrder,\n image_url: data.imageUrl,\n icon_url: data.iconUrl,\n },\n },\n });\n return decodeOne(response, categoryMapper);\n },\n\n async update(uniqueId: string, data: UpdateCategoryRequest): Promise<Category> {\n const response = await transport.put<unknown>(`/content/categories/${uniqueId}`, {\n data: {\n type: 'Category',\n attributes: {\n name: data.name,\n description: data.description,\n parent_unique_id: data.parentUniqueId,\n display_order: data.displayOrder,\n image_url: data.imageUrl,\n icon_url: data.iconUrl,\n enabled: data.enabled,\n status: data.status,\n },\n },\n });\n return decodeOne(response, categoryMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/content/categories/${uniqueId}`);\n },\n\n async recover(uniqueId: string): Promise<Category> {\n const response = await transport.put<unknown>(`/content/categories/${uniqueId}/recover`, {});\n return decodeOne(response, categoryMapper);\n },\n\n async getChildren(uniqueId: string): Promise<Category[]> {\n const response = await transport.get<unknown>(`/content/categories/${uniqueId}/children`);\n return decodeMany(response, categoryMapper);\n },\n };\n}\n"],"names":["decodeOne","decodeMany","decodePageResult","categoryMapper","createCategoriesService","transport","_config","list","params","queryParams","page","String","perPage","parentUniqueId","withChildren","withPosts","response","get","uniqueId","create","data","post","type","attributes","name","description","parent_unique_id","display_order","displayOrder","image_url","imageUrl","icon_url","iconUrl","update","put","enabled","status","delete","recover","getChildren"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOlF,SAASC,cAAc,QAAQ,6BAA6B;AAY5D,OAAO,SAASC,wBAAwBC,SAAoB,EAAEC,OAA0B;IACtF,OAAO;QACL,MAAMC,MAAKC,MAA6B;YACtC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,cAAc,EAAEJ,WAAW,CAAC,mBAAmB,GAAGD,OAAOK,cAAc;YACnF,IAAIL,0BAAAA,OAAQM,YAAY,EAAEL,WAAW,CAAC,OAAO,GAAG;YAChD,IAAID,0BAAAA,OAAQO,SAAS,EAAEN,WAAW,CAAC,OAAO,GAAGD,OAAOM,YAAY,GAAG,mBAAmB;YAEtF,MAAME,WAAW,MAAMX,UAAUY,GAAG,CAAU,uBAAuB;gBAAET,QAAQC;YAAY;YAC3F,OAAOP,iBAAiBc,UAAUb;QACpC;QAEA,MAAMc,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMX,UAAUY,GAAG,CAAU,CAAC,oBAAoB,EAAEC,SAAS,CAAC;YAC/E,OAAOlB,UAAUgB,UAAUb;QAC7B;QAEA,MAAMgB,QAAOC,IAA2B;YACtC,MAAMJ,WAAW,MAAMX,UAAUgB,IAAI,CAAU,uBAAuB;gBACpED,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,aAAaL,KAAKK,WAAW;wBAC7BC,kBAAkBN,KAAKP,cAAc;wBACrCc,eAAeP,KAAKQ,YAAY;wBAChCC,WAAWT,KAAKU,QAAQ;wBACxBC,UAAUX,KAAKY,OAAO;oBACxB;gBACF;YACF;YACA,OAAOhC,UAAUgB,UAAUb;QAC7B;QAEA,MAAM8B,QAAOf,QAAgB,EAAEE,IAA2B;YACxD,MAAMJ,WAAW,MAAMX,UAAU6B,GAAG,CAAU,CAAC,oBAAoB,EAAEhB,SAAS,CAAC,EAAE;gBAC/EE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,MAAMJ,KAAKI,IAAI;wBACfC,aAAaL,KAAKK,WAAW;wBAC7BC,kBAAkBN,KAAKP,cAAc;wBACrCc,eAAeP,KAAKQ,YAAY;wBAChCC,WAAWT,KAAKU,QAAQ;wBACxBC,UAAUX,KAAKY,OAAO;wBACtBG,SAASf,KAAKe,OAAO;wBACrBC,QAAQhB,KAAKgB,MAAM;oBACrB;gBACF;YACF;YACA,OAAOpC,UAAUgB,UAAUb;QAC7B;QAEA,MAAMkC,QAAOnB,QAAgB;YAC3B,MAAMb,UAAUgC,MAAM,CAAC,CAAC,oBAAoB,EAAEnB,SAAS,CAAC;QAC1D;QAEA,MAAMoB,SAAQpB,QAAgB;YAC5B,MAAMF,WAAW,MAAMX,UAAU6B,GAAG,CAAU,CAAC,oBAAoB,EAAEhB,SAAS,QAAQ,CAAC,EAAE,CAAC;YAC1F,OAAOlB,UAAUgB,UAAUb;QAC7B;QAEA,MAAMoC,aAAYrB,QAAgB;YAChC,MAAMF,WAAW,MAAMX,UAAUY,GAAG,CAAU,CAAC,oBAAoB,EAAEC,SAAS,SAAS,CAAC;YACxF,OAAOjB,WAAWe,UAAUb;QAC9B;IACF;AACF"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { commentMapper } from '../mappers/comment.mapper';
|
|
3
|
-
export function createCommentsService(transport, _config) {
|
|
4
|
-
return {
|
|
5
|
-
async list (params) {
|
|
6
|
-
const queryParams = {};
|
|
7
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
-
if (params == null ? void 0 : params.postUniqueId) queryParams['post_unique_id'] = params.postUniqueId;
|
|
10
|
-
if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
|
|
11
|
-
if (params == null ? void 0 : params.parentId) queryParams['parent_id'] = params.parentId;
|
|
12
|
-
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
13
|
-
const response = await transport.get('/comments', {
|
|
14
|
-
params: queryParams
|
|
15
|
-
});
|
|
16
|
-
return decodePageResult(response, commentMapper);
|
|
17
|
-
},
|
|
18
|
-
async get (uniqueId) {
|
|
19
|
-
const response = await transport.get(`/comments/${uniqueId}`);
|
|
20
|
-
return decodeOne(response, commentMapper);
|
|
21
|
-
},
|
|
22
|
-
async create (data) {
|
|
23
|
-
const response = await transport.post('/comments', {
|
|
24
|
-
data: {
|
|
25
|
-
type: 'Comment',
|
|
26
|
-
attributes: {
|
|
27
|
-
post_unique_id: data.postUniqueId,
|
|
28
|
-
content: data.content,
|
|
29
|
-
thumbnail_url: data.thumbnailUrl,
|
|
30
|
-
image_url: data.imageUrl,
|
|
31
|
-
content_url: data.contentUrl,
|
|
32
|
-
media_url: data.mediaUrl,
|
|
33
|
-
parent_id: data.parentId,
|
|
34
|
-
payload: data.payload
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return decodeOne(response, commentMapper);
|
|
39
|
-
},
|
|
40
|
-
async update (uniqueId, data) {
|
|
41
|
-
const response = await transport.put(`/comments/${uniqueId}`, {
|
|
42
|
-
data: {
|
|
43
|
-
type: 'Comment',
|
|
44
|
-
attributes: {
|
|
45
|
-
content: data.content,
|
|
46
|
-
thumbnail_url: data.thumbnailUrl,
|
|
47
|
-
image_url: data.imageUrl,
|
|
48
|
-
content_url: data.contentUrl,
|
|
49
|
-
media_url: data.mediaUrl,
|
|
50
|
-
enabled: data.enabled,
|
|
51
|
-
status: data.status,
|
|
52
|
-
payload: data.payload
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
return decodeOne(response, commentMapper);
|
|
57
|
-
},
|
|
58
|
-
async delete (uniqueId) {
|
|
59
|
-
await transport.delete(`/comments/${uniqueId}`);
|
|
60
|
-
},
|
|
61
|
-
// Engagement
|
|
62
|
-
async like (uniqueId) {
|
|
63
|
-
const response = await transport.post(`/comments/${uniqueId}/like`, {});
|
|
64
|
-
return decodeOne(response, commentMapper);
|
|
65
|
-
},
|
|
66
|
-
async dislike (uniqueId) {
|
|
67
|
-
const response = await transport.post(`/comments/${uniqueId}/dislike`, {});
|
|
68
|
-
return decodeOne(response, commentMapper);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
//# sourceMappingURL=comments.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/comments.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Comment,\n CreateCommentRequest,\n UpdateCommentRequest,\n ListCommentsParams,\n} from '../types/comment';\nimport { commentMapper } from '../mappers/comment.mapper';\n\nexport interface CommentsService {\n list(params?: ListCommentsParams): Promise<PageResult<Comment>>;\n get(uniqueId: string): Promise<Comment>;\n create(data: CreateCommentRequest): Promise<Comment>;\n update(uniqueId: string, data: UpdateCommentRequest): Promise<Comment>;\n delete(uniqueId: string): Promise<void>;\n\n // Engagement\n like(uniqueId: string): Promise<Comment>;\n dislike(uniqueId: string): Promise<Comment>;\n}\n\nexport function createCommentsService(transport: Transport, _config: { appId: string }): CommentsService {\n return {\n async list(params?: ListCommentsParams): Promise<PageResult<Comment>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.postUniqueId) queryParams['post_unique_id'] = params.postUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.parentId) queryParams['parent_id'] = params.parentId;\n if (params?.status) queryParams['status'] = params.status;\n\n const response = await transport.get<unknown>('/comments', { params: queryParams });\n return decodePageResult(response, commentMapper);\n },\n\n async get(uniqueId: string): Promise<Comment> {\n const response = await transport.get<unknown>(`/comments/${uniqueId}`);\n return decodeOne(response, commentMapper);\n },\n\n async create(data: CreateCommentRequest): Promise<Comment> {\n const response = await transport.post<unknown>('/comments', {\n data: {\n type: 'Comment',\n attributes: {\n post_unique_id: data.postUniqueId,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n parent_id: data.parentId,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, commentMapper);\n },\n\n async update(uniqueId: string, data: UpdateCommentRequest): Promise<Comment> {\n const response = await transport.put<unknown>(`/comments/${uniqueId}`, {\n data: {\n type: 'Comment',\n attributes: {\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, commentMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/comments/${uniqueId}`);\n },\n\n // Engagement\n async like(uniqueId: string): Promise<Comment> {\n const response = await transport.post<unknown>(`/comments/${uniqueId}/like`, {});\n return decodeOne(response, commentMapper);\n },\n\n async dislike(uniqueId: string): Promise<Comment> {\n const response = await transport.post<unknown>(`/comments/${uniqueId}/dislike`, {});\n return decodeOne(response, commentMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","commentMapper","createCommentsService","transport","_config","list","params","queryParams","page","String","perPage","postUniqueId","userUniqueId","parentId","status","response","get","uniqueId","create","data","post","type","attributes","post_unique_id","content","thumbnail_url","thumbnailUrl","image_url","imageUrl","content_url","contentUrl","media_url","mediaUrl","parent_id","payload","update","put","enabled","delete","like","dislike"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,aAAa,QAAQ,4BAA4B;AAc1D,OAAO,SAASC,sBAAsBC,SAAoB,EAAEC,OAA0B;IACpF,OAAO;QACL,MAAMC,MAAKC,MAA2B;YACpC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,YAAY,EAAEJ,WAAW,CAAC,iBAAiB,GAAGD,OAAOK,YAAY;YAC7E,IAAIL,0BAAAA,OAAQM,YAAY,EAAEL,WAAW,CAAC,iBAAiB,GAAGD,OAAOM,YAAY;YAC7E,IAAIN,0BAAAA,OAAQO,QAAQ,EAAEN,WAAW,CAAC,YAAY,GAAGD,OAAOO,QAAQ;YAChE,IAAIP,0BAAAA,OAAQQ,MAAM,EAAEP,WAAW,CAAC,SAAS,GAAGD,OAAOQ,MAAM;YAEzD,MAAMC,WAAW,MAAMZ,UAAUa,GAAG,CAAU,aAAa;gBAAEV,QAAQC;YAAY;YACjF,OAAOP,iBAAiBe,UAAUd;QACpC;QAEA,MAAMe,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMZ,UAAUa,GAAG,CAAU,CAAC,UAAU,EAAEC,SAAS,CAAC;YACrE,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMiB,QAAOC,IAA0B;YACrC,MAAMJ,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,aAAa;gBAC1DD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,gBAAgBJ,KAAKR,YAAY;wBACjCa,SAASL,KAAKK,OAAO;wBACrBC,eAAeN,KAAKO,YAAY;wBAChCC,WAAWR,KAAKS,QAAQ;wBACxBC,aAAaV,KAAKW,UAAU;wBAC5BC,WAAWZ,KAAKa,QAAQ;wBACxBC,WAAWd,KAAKN,QAAQ;wBACxBqB,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMkC,QAAOlB,QAAgB,EAAEE,IAA0B;YACvD,MAAMJ,WAAW,MAAMZ,UAAUiC,GAAG,CAAU,CAAC,UAAU,EAAEnB,SAAS,CAAC,EAAE;gBACrEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVE,SAASL,KAAKK,OAAO;wBACrBC,eAAeN,KAAKO,YAAY;wBAChCC,WAAWR,KAAKS,QAAQ;wBACxBC,aAAaV,KAAKW,UAAU;wBAC5BC,WAAWZ,KAAKa,QAAQ;wBACxBK,SAASlB,KAAKkB,OAAO;wBACrBvB,QAAQK,KAAKL,MAAM;wBACnBoB,SAASf,KAAKe,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnC,UAAUgB,UAAUd;QAC7B;QAEA,MAAMqC,QAAOrB,QAAgB;YAC3B,MAAMd,UAAUmC,MAAM,CAAC,CAAC,UAAU,EAAErB,SAAS,CAAC;QAChD;QAEA,aAAa;QACb,MAAMsB,MAAKtB,QAAgB;YACzB,MAAMF,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,CAAC,UAAU,EAAEH,SAAS,KAAK,CAAC,EAAE,CAAC;YAC9E,OAAOlB,UAAUgB,UAAUd;QAC7B;QAEA,MAAMuC,SAAQvB,QAAgB;YAC5B,MAAMF,WAAW,MAAMZ,UAAUiB,IAAI,CAAU,CAAC,UAAU,EAAEH,SAAS,QAAQ,CAAC,EAAE,CAAC;YACjF,OAAOlB,UAAUgB,UAAUd;QAC7B;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/index.ts"],"sourcesContent":["export * from './posts.service';\nexport * from './comments.service';\nexport * from './categories.service';\nexport * from './tags.service';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,kBAAkB;AAChC,cAAc,qBAAqB;AACnC,cAAc,uBAAuB;AACrC,cAAc,iBAAiB"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { postMapper } from '../mappers/post.mapper';
|
|
3
|
-
export function createPostsService(transport, _config) {
|
|
4
|
-
return {
|
|
5
|
-
async list (params) {
|
|
6
|
-
const queryParams = {};
|
|
7
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
-
if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
|
|
10
|
-
if (params == null ? void 0 : params.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;
|
|
11
|
-
if (params == null ? void 0 : params.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;
|
|
12
|
-
if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
|
|
13
|
-
if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
|
|
14
|
-
if ((params == null ? void 0 : params.isPublic) !== undefined) queryParams['is_public'] = String(params.isPublic);
|
|
15
|
-
if (params == null ? void 0 : params.withComments) queryParams['with'] = 'comments';
|
|
16
|
-
if (params == null ? void 0 : params.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';
|
|
17
|
-
if (params == null ? void 0 : params.withTags) {
|
|
18
|
-
queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';
|
|
19
|
-
}
|
|
20
|
-
if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
|
|
21
|
-
const response = await transport.get('/posts', {
|
|
22
|
-
params: queryParams
|
|
23
|
-
});
|
|
24
|
-
return decodePageResult(response, postMapper);
|
|
25
|
-
},
|
|
26
|
-
async get (uniqueId) {
|
|
27
|
-
const response = await transport.get(`/posts/${uniqueId}`);
|
|
28
|
-
return decodeOne(response, postMapper);
|
|
29
|
-
},
|
|
30
|
-
async create (data) {
|
|
31
|
-
const response = await transport.post('/posts', {
|
|
32
|
-
data: {
|
|
33
|
-
type: 'Post',
|
|
34
|
-
attributes: {
|
|
35
|
-
title: data.title,
|
|
36
|
-
abstract: data.abstract,
|
|
37
|
-
keywords: data.keywords,
|
|
38
|
-
content: data.content,
|
|
39
|
-
thumbnail_url: data.thumbnailUrl,
|
|
40
|
-
image_url: data.imageUrl,
|
|
41
|
-
media_url: data.mediaUrl,
|
|
42
|
-
category_unique_ids: data.categoryUniqueIds,
|
|
43
|
-
tag_unique_ids: data.tagUniqueIds,
|
|
44
|
-
is_public: data.isPublic,
|
|
45
|
-
publish_at: data.publishAt,
|
|
46
|
-
publish_until: data.publishUntil,
|
|
47
|
-
payload: data.payload
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
return decodeOne(response, postMapper);
|
|
52
|
-
},
|
|
53
|
-
async update (uniqueId, data) {
|
|
54
|
-
const response = await transport.put(`/posts/${uniqueId}`, {
|
|
55
|
-
data: {
|
|
56
|
-
type: 'Post',
|
|
57
|
-
attributes: {
|
|
58
|
-
title: data.title,
|
|
59
|
-
abstract: data.abstract,
|
|
60
|
-
keywords: data.keywords,
|
|
61
|
-
content: data.content,
|
|
62
|
-
thumbnail_url: data.thumbnailUrl,
|
|
63
|
-
image_url: data.imageUrl,
|
|
64
|
-
media_url: data.mediaUrl,
|
|
65
|
-
category_unique_ids: data.categoryUniqueIds,
|
|
66
|
-
tag_unique_ids: data.tagUniqueIds,
|
|
67
|
-
is_public: data.isPublic,
|
|
68
|
-
publish_at: data.publishAt,
|
|
69
|
-
publish_until: data.publishUntil,
|
|
70
|
-
enabled: data.enabled,
|
|
71
|
-
status: data.status,
|
|
72
|
-
payload: data.payload
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
return decodeOne(response, postMapper);
|
|
77
|
-
},
|
|
78
|
-
async delete (uniqueId) {
|
|
79
|
-
await transport.delete(`/posts/${uniqueId}`);
|
|
80
|
-
},
|
|
81
|
-
async recover (uniqueId) {
|
|
82
|
-
const response = await transport.put(`/posts/${uniqueId}/recover`, {});
|
|
83
|
-
return decodeOne(response, postMapper);
|
|
84
|
-
},
|
|
85
|
-
async search (query, params) {
|
|
86
|
-
const queryParams = {
|
|
87
|
-
search: query
|
|
88
|
-
};
|
|
89
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
90
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
91
|
-
const response = await transport.post('/posts/search', {
|
|
92
|
-
search: query
|
|
93
|
-
}, {
|
|
94
|
-
params: queryParams
|
|
95
|
-
});
|
|
96
|
-
return decodePageResult(response, postMapper);
|
|
97
|
-
},
|
|
98
|
-
async listDeleted (params) {
|
|
99
|
-
const queryParams = {};
|
|
100
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
101
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
102
|
-
const response = await transport.get('/posts/trash/show', {
|
|
103
|
-
params: queryParams
|
|
104
|
-
});
|
|
105
|
-
return decodePageResult(response, postMapper);
|
|
106
|
-
},
|
|
107
|
-
// Engagement
|
|
108
|
-
async like (uniqueId) {
|
|
109
|
-
const response = await transport.post(`/posts/${uniqueId}/like`, {});
|
|
110
|
-
return decodeOne(response, postMapper);
|
|
111
|
-
},
|
|
112
|
-
async dislike (uniqueId) {
|
|
113
|
-
const response = await transport.post(`/posts/${uniqueId}/dislike`, {});
|
|
114
|
-
return decodeOne(response, postMapper);
|
|
115
|
-
},
|
|
116
|
-
async save (uniqueId) {
|
|
117
|
-
const response = await transport.post(`/posts/${uniqueId}/save`, {});
|
|
118
|
-
return decodeOne(response, postMapper);
|
|
119
|
-
},
|
|
120
|
-
async follow (uniqueId) {
|
|
121
|
-
const response = await transport.post(`/posts/${uniqueId}/follow`, {});
|
|
122
|
-
return decodeOne(response, postMapper);
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
//# sourceMappingURL=posts.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/posts.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Post,\n CreatePostRequest,\n UpdatePostRequest,\n ListPostsParams,\n} from '../types/post';\nimport { postMapper } from '../mappers/post.mapper';\n\nexport interface PostsService {\n // Posts\n list(params?: ListPostsParams): Promise<PageResult<Post>>;\n get(uniqueId: string): Promise<Post>;\n create(data: CreatePostRequest): Promise<Post>;\n update(uniqueId: string, data: UpdatePostRequest): Promise<Post>;\n delete(uniqueId: string): Promise<void>;\n recover(uniqueId: string): Promise<Post>;\n search(query: string, params?: ListPostsParams): Promise<PageResult<Post>>;\n listDeleted(params?: ListPostsParams): Promise<PageResult<Post>>;\n\n // Engagement\n like(uniqueId: string): Promise<Post>;\n dislike(uniqueId: string): Promise<Post>;\n save(uniqueId: string): Promise<Post>;\n follow(uniqueId: string): Promise<Post>;\n}\n\nexport function createPostsService(transport: Transport, _config: { appId: string }): PostsService {\n return {\n async list(params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.status) queryParams['status'] = params.status;\n if (params?.categoryUniqueId) queryParams['category_unique_id'] = params.categoryUniqueId;\n if (params?.tagUniqueId) queryParams['tag_unique_id'] = params.tagUniqueId;\n if (params?.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;\n if (params?.search) queryParams['search'] = params.search;\n if (params?.isPublic !== undefined) queryParams['is_public'] = String(params.isPublic);\n if (params?.withComments) queryParams['with'] = 'comments';\n if (params?.withCategories) queryParams['with'] = params.withComments ? 'comments,categories' : 'categories';\n if (params?.withTags) {\n queryParams['with'] = queryParams['with'] ? `${queryParams['with']},tags` : 'tags';\n }\n if (params?.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;\n\n const response = await transport.get<unknown>('/posts', { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n async get(uniqueId: string): Promise<Post> {\n const response = await transport.get<unknown>(`/posts/${uniqueId}`);\n return decodeOne(response, postMapper);\n },\n\n async create(data: CreatePostRequest): Promise<Post> {\n const response = await transport.post<unknown>('/posts', {\n data: {\n type: 'Post',\n attributes: {\n title: data.title,\n abstract: data.abstract,\n keywords: data.keywords,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n media_url: data.mediaUrl,\n category_unique_ids: data.categoryUniqueIds,\n tag_unique_ids: data.tagUniqueIds,\n is_public: data.isPublic,\n publish_at: data.publishAt,\n publish_until: data.publishUntil,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, postMapper);\n },\n\n async update(uniqueId: string, data: UpdatePostRequest): Promise<Post> {\n const response = await transport.put<unknown>(`/posts/${uniqueId}`, {\n data: {\n type: 'Post',\n attributes: {\n title: data.title,\n abstract: data.abstract,\n keywords: data.keywords,\n content: data.content,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n media_url: data.mediaUrl,\n category_unique_ids: data.categoryUniqueIds,\n tag_unique_ids: data.tagUniqueIds,\n is_public: data.isPublic,\n publish_at: data.publishAt,\n publish_until: data.publishUntil,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, postMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/posts/${uniqueId}`);\n },\n\n async recover(uniqueId: string): Promise<Post> {\n const response = await transport.put<unknown>(`/posts/${uniqueId}/recover`, {});\n return decodeOne(response, postMapper);\n },\n\n async search(query: string, params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = { search: query };\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n\n const response = await transport.post<unknown>('/posts/search', { search: query }, { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n async listDeleted(params?: ListPostsParams): Promise<PageResult<Post>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n\n const response = await transport.get<unknown>('/posts/trash/show', { params: queryParams });\n return decodePageResult(response, postMapper);\n },\n\n // Engagement\n async like(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/like`, {});\n return decodeOne(response, postMapper);\n },\n\n async dislike(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/dislike`, {});\n return decodeOne(response, postMapper);\n },\n\n async save(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/save`, {});\n return decodeOne(response, postMapper);\n },\n\n async follow(uniqueId: string): Promise<Post> {\n const response = await transport.post<unknown>(`/posts/${uniqueId}/follow`, {});\n return decodeOne(response, postMapper);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","postMapper","createPostsService","transport","_config","list","params","queryParams","page","String","perPage","status","categoryUniqueId","tagUniqueId","userUniqueId","search","isPublic","undefined","withComments","withCategories","withTags","sortBy","sortOrder","response","get","uniqueId","create","data","post","type","attributes","title","abstract","keywords","content","thumbnail_url","thumbnailUrl","image_url","imageUrl","media_url","mediaUrl","category_unique_ids","categoryUniqueIds","tag_unique_ids","tagUniqueIds","is_public","publish_at","publishAt","publish_until","publishUntil","payload","update","put","enabled","delete","recover","query","listDeleted","like","dislike","save","follow"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,UAAU,QAAQ,yBAAyB;AAoBpD,OAAO,SAASC,mBAAmBC,SAAoB,EAAEC,OAA0B;IACjF,OAAO;QACL,MAAMC,MAAKC,MAAwB;YACjC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YACzD,IAAIL,0BAAAA,OAAQM,gBAAgB,EAAEL,WAAW,CAAC,qBAAqB,GAAGD,OAAOM,gBAAgB;YACzF,IAAIN,0BAAAA,OAAQO,WAAW,EAAEN,WAAW,CAAC,gBAAgB,GAAGD,OAAOO,WAAW;YAC1E,IAAIP,0BAAAA,OAAQQ,YAAY,EAAEP,WAAW,CAAC,iBAAiB,GAAGD,OAAOQ,YAAY;YAC7E,IAAIR,0BAAAA,OAAQS,MAAM,EAAER,WAAW,CAAC,SAAS,GAAGD,OAAOS,MAAM;YACzD,IAAIT,CAAAA,0BAAAA,OAAQU,QAAQ,MAAKC,WAAWV,WAAW,CAAC,YAAY,GAAGE,OAAOH,OAAOU,QAAQ;YACrF,IAAIV,0BAAAA,OAAQY,YAAY,EAAEX,WAAW,CAAC,OAAO,GAAG;YAChD,IAAID,0BAAAA,OAAQa,cAAc,EAAEZ,WAAW,CAAC,OAAO,GAAGD,OAAOY,YAAY,GAAG,wBAAwB;YAChG,IAAIZ,0BAAAA,OAAQc,QAAQ,EAAE;gBACpBb,WAAW,CAAC,OAAO,GAAGA,WAAW,CAAC,OAAO,GAAG,CAAC,EAAEA,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;YAC9E;YACA,IAAID,0BAAAA,OAAQe,MAAM,EAAEd,WAAW,CAAC,OAAO,GAAGD,OAAOgB,SAAS,KAAK,SAAS,CAAC,CAAC,EAAEhB,OAAOe,MAAM,CAAC,CAAC,GAAGf,OAAOe,MAAM;YAE3G,MAAME,WAAW,MAAMpB,UAAUqB,GAAG,CAAU,UAAU;gBAAElB,QAAQC;YAAY;YAC9E,OAAOP,iBAAiBuB,UAAUtB;QACpC;QAEA,MAAMuB,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMpB,UAAUqB,GAAG,CAAU,CAAC,OAAO,EAAEC,SAAS,CAAC;YAClE,OAAO1B,UAAUwB,UAAUtB;QAC7B;QAEA,MAAMyB,QAAOC,IAAuB;YAClC,MAAMJ,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,UAAU;gBACvDD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,OAAOJ,KAAKI,KAAK;wBACjBC,UAAUL,KAAKK,QAAQ;wBACvBC,UAAUN,KAAKM,QAAQ;wBACvBC,SAASP,KAAKO,OAAO;wBACrBC,eAAeR,KAAKS,YAAY;wBAChCC,WAAWV,KAAKW,QAAQ;wBACxBC,WAAWZ,KAAKa,QAAQ;wBACxBC,qBAAqBd,KAAKe,iBAAiB;wBAC3CC,gBAAgBhB,KAAKiB,YAAY;wBACjCC,WAAWlB,KAAKX,QAAQ;wBACxB8B,YAAYnB,KAAKoB,SAAS;wBAC1BC,eAAerB,KAAKsB,YAAY;wBAChCC,SAASvB,KAAKuB,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnD,UAAUwB,UAAUtB;QAC7B;QAEA,MAAMkD,QAAO1B,QAAgB,EAAEE,IAAuB;YACpD,MAAMJ,WAAW,MAAMpB,UAAUiD,GAAG,CAAU,CAAC,OAAO,EAAE3B,SAAS,CAAC,EAAE;gBAClEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,OAAOJ,KAAKI,KAAK;wBACjBC,UAAUL,KAAKK,QAAQ;wBACvBC,UAAUN,KAAKM,QAAQ;wBACvBC,SAASP,KAAKO,OAAO;wBACrBC,eAAeR,KAAKS,YAAY;wBAChCC,WAAWV,KAAKW,QAAQ;wBACxBC,WAAWZ,KAAKa,QAAQ;wBACxBC,qBAAqBd,KAAKe,iBAAiB;wBAC3CC,gBAAgBhB,KAAKiB,YAAY;wBACjCC,WAAWlB,KAAKX,QAAQ;wBACxB8B,YAAYnB,KAAKoB,SAAS;wBAC1BC,eAAerB,KAAKsB,YAAY;wBAChCI,SAAS1B,KAAK0B,OAAO;wBACrB1C,QAAQgB,KAAKhB,MAAM;wBACnBuC,SAASvB,KAAKuB,OAAO;oBACvB;gBACF;YACF;YACA,OAAOnD,UAAUwB,UAAUtB;QAC7B;QAEA,MAAMqD,QAAO7B,QAAgB;YAC3B,MAAMtB,UAAUmD,MAAM,CAAC,CAAC,OAAO,EAAE7B,SAAS,CAAC;QAC7C;QAEA,MAAM8B,SAAQ9B,QAAgB;YAC5B,MAAMF,WAAW,MAAMpB,UAAUiD,GAAG,CAAU,CAAC,OAAO,EAAE3B,SAAS,QAAQ,CAAC,EAAE,CAAC;YAC7E,OAAO1B,UAAUwB,UAAUtB;QAC7B;QAEA,MAAMc,QAAOyC,KAAa,EAAElD,MAAwB;YAClD,MAAMC,cAAsC;gBAAEQ,QAAQyC;YAAM;YAC5D,IAAIlD,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YAEnE,MAAMa,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,iBAAiB;gBAAEb,QAAQyC;YAAM,GAAG;gBAAElD,QAAQC;YAAY;YACzG,OAAOP,iBAAiBuB,UAAUtB;QACpC;QAEA,MAAMwD,aAAYnD,MAAwB;YACxC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YAEnE,MAAMa,WAAW,MAAMpB,UAAUqB,GAAG,CAAU,qBAAqB;gBAAElB,QAAQC;YAAY;YACzF,OAAOP,iBAAiBuB,UAAUtB;QACpC;QAEA,aAAa;QACb,MAAMyD,MAAKjC,QAAgB;YACzB,MAAMF,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,CAAC,OAAO,EAAEH,SAAS,KAAK,CAAC,EAAE,CAAC;YAC3E,OAAO1B,UAAUwB,UAAUtB;QAC7B;QAEA,MAAM0D,SAAQlC,QAAgB;YAC5B,MAAMF,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,CAAC,OAAO,EAAEH,SAAS,QAAQ,CAAC,EAAE,CAAC;YAC9E,OAAO1B,UAAUwB,UAAUtB;QAC7B;QAEA,MAAM2D,MAAKnC,QAAgB;YACzB,MAAMF,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,CAAC,OAAO,EAAEH,SAAS,KAAK,CAAC,EAAE,CAAC;YAC3E,OAAO1B,UAAUwB,UAAUtB;QAC7B;QAEA,MAAM4D,QAAOpC,QAAgB;YAC3B,MAAMF,WAAW,MAAMpB,UAAUyB,IAAI,CAAU,CAAC,OAAO,EAAEH,SAAS,OAAO,CAAC,EAAE,CAAC;YAC7E,OAAO1B,UAAUwB,UAAUtB;QAC7B;IACF;AACF"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';
|
|
2
|
-
import { tagMapper } from '../mappers/tag.mapper';
|
|
3
|
-
export function createTagsService(transport, _config) {
|
|
4
|
-
return {
|
|
5
|
-
async list (params) {
|
|
6
|
-
const queryParams = {};
|
|
7
|
-
if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
|
|
8
|
-
if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
|
|
9
|
-
if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
|
|
10
|
-
const response = await transport.get('/tags', {
|
|
11
|
-
params: queryParams
|
|
12
|
-
});
|
|
13
|
-
return decodePageResult(response, tagMapper);
|
|
14
|
-
},
|
|
15
|
-
async get (uniqueId) {
|
|
16
|
-
const response = await transport.get(`/tags/${uniqueId}`);
|
|
17
|
-
return decodeOne(response, tagMapper);
|
|
18
|
-
},
|
|
19
|
-
async create (data) {
|
|
20
|
-
const response = await transport.post('/tags', {
|
|
21
|
-
data: {
|
|
22
|
-
type: 'Tag',
|
|
23
|
-
attributes: {
|
|
24
|
-
tag: data.tag,
|
|
25
|
-
thumbnail_url: data.thumbnailUrl,
|
|
26
|
-
image_url: data.imageUrl,
|
|
27
|
-
content_url: data.contentUrl,
|
|
28
|
-
media_url: data.mediaUrl,
|
|
29
|
-
payload: data.payload
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
return decodeOne(response, tagMapper);
|
|
34
|
-
},
|
|
35
|
-
async update (uniqueId, data) {
|
|
36
|
-
const response = await transport.put(`/tags/${uniqueId}`, {
|
|
37
|
-
data: {
|
|
38
|
-
type: 'Tag',
|
|
39
|
-
attributes: {
|
|
40
|
-
tag: data.tag,
|
|
41
|
-
thumbnail_url: data.thumbnailUrl,
|
|
42
|
-
image_url: data.imageUrl,
|
|
43
|
-
content_url: data.contentUrl,
|
|
44
|
-
media_url: data.mediaUrl,
|
|
45
|
-
enabled: data.enabled,
|
|
46
|
-
status: data.status,
|
|
47
|
-
payload: data.payload
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
return decodeOne(response, tagMapper);
|
|
52
|
-
},
|
|
53
|
-
async delete (uniqueId) {
|
|
54
|
-
await transport.delete(`/tags/${uniqueId}`);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
//# sourceMappingURL=tags.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/services/tags.service.ts"],"sourcesContent":["import type { Transport, PageResult } from '@23blocks/contracts';\nimport { decodeOne, decodePageResult } from '@23blocks/jsonapi-codec';\nimport type {\n Tag,\n CreateTagRequest,\n UpdateTagRequest,\n ListTagsParams,\n} from '../types/tag';\nimport { tagMapper } from '../mappers/tag.mapper';\n\nexport interface TagsService {\n list(params?: ListTagsParams): Promise<PageResult<Tag>>;\n get(uniqueId: string): Promise<Tag>;\n create(data: CreateTagRequest): Promise<Tag>;\n update(uniqueId: string, data: UpdateTagRequest): Promise<Tag>;\n delete(uniqueId: string): Promise<void>;\n}\n\nexport function createTagsService(transport: Transport, _config: { appId: string }): TagsService {\n return {\n async list(params?: ListTagsParams): Promise<PageResult<Tag>> {\n const queryParams: Record<string, string> = {};\n if (params?.page) queryParams['page'] = String(params.page);\n if (params?.perPage) queryParams['records'] = String(params.perPage);\n if (params?.search) queryParams['search'] = params.search;\n\n const response = await transport.get<unknown>('/tags', { params: queryParams });\n return decodePageResult(response, tagMapper);\n },\n\n async get(uniqueId: string): Promise<Tag> {\n const response = await transport.get<unknown>(`/tags/${uniqueId}`);\n return decodeOne(response, tagMapper);\n },\n\n async create(data: CreateTagRequest): Promise<Tag> {\n const response = await transport.post<unknown>('/tags', {\n data: {\n type: 'Tag',\n attributes: {\n tag: data.tag,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, tagMapper);\n },\n\n async update(uniqueId: string, data: UpdateTagRequest): Promise<Tag> {\n const response = await transport.put<unknown>(`/tags/${uniqueId}`, {\n data: {\n type: 'Tag',\n attributes: {\n tag: data.tag,\n thumbnail_url: data.thumbnailUrl,\n image_url: data.imageUrl,\n content_url: data.contentUrl,\n media_url: data.mediaUrl,\n enabled: data.enabled,\n status: data.status,\n payload: data.payload,\n },\n },\n });\n return decodeOne(response, tagMapper);\n },\n\n async delete(uniqueId: string): Promise<void> {\n await transport.delete(`/tags/${uniqueId}`);\n },\n };\n}\n"],"names":["decodeOne","decodePageResult","tagMapper","createTagsService","transport","_config","list","params","queryParams","page","String","perPage","search","response","get","uniqueId","create","data","post","type","attributes","tag","thumbnail_url","thumbnailUrl","image_url","imageUrl","content_url","contentUrl","media_url","mediaUrl","payload","update","put","enabled","status","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,SAAS,EAAEC,gBAAgB,QAAQ,0BAA0B;AAOtE,SAASC,SAAS,QAAQ,wBAAwB;AAUlD,OAAO,SAASC,kBAAkBC,SAAoB,EAAEC,OAA0B;IAChF,OAAO;QACL,MAAMC,MAAKC,MAAuB;YAChC,MAAMC,cAAsC,CAAC;YAC7C,IAAID,0BAAAA,OAAQE,IAAI,EAAED,WAAW,CAAC,OAAO,GAAGE,OAAOH,OAAOE,IAAI;YAC1D,IAAIF,0BAAAA,OAAQI,OAAO,EAAEH,WAAW,CAAC,UAAU,GAAGE,OAAOH,OAAOI,OAAO;YACnE,IAAIJ,0BAAAA,OAAQK,MAAM,EAAEJ,WAAW,CAAC,SAAS,GAAGD,OAAOK,MAAM;YAEzD,MAAMC,WAAW,MAAMT,UAAUU,GAAG,CAAU,SAAS;gBAAEP,QAAQC;YAAY;YAC7E,OAAOP,iBAAiBY,UAAUX;QACpC;QAEA,MAAMY,KAAIC,QAAgB;YACxB,MAAMF,WAAW,MAAMT,UAAUU,GAAG,CAAU,CAAC,MAAM,EAAEC,SAAS,CAAC;YACjE,OAAOf,UAAUa,UAAUX;QAC7B;QAEA,MAAMc,QAAOC,IAAsB;YACjC,MAAMJ,WAAW,MAAMT,UAAUc,IAAI,CAAU,SAAS;gBACtDD,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,KAAKJ,KAAKI,GAAG;wBACbC,eAAeL,KAAKM,YAAY;wBAChCC,WAAWP,KAAKQ,QAAQ;wBACxBC,aAAaT,KAAKU,UAAU;wBAC5BC,WAAWX,KAAKY,QAAQ;wBACxBC,SAASb,KAAKa,OAAO;oBACvB;gBACF;YACF;YACA,OAAO9B,UAAUa,UAAUX;QAC7B;QAEA,MAAM6B,QAAOhB,QAAgB,EAAEE,IAAsB;YACnD,MAAMJ,WAAW,MAAMT,UAAU4B,GAAG,CAAU,CAAC,MAAM,EAAEjB,SAAS,CAAC,EAAE;gBACjEE,MAAM;oBACJE,MAAM;oBACNC,YAAY;wBACVC,KAAKJ,KAAKI,GAAG;wBACbC,eAAeL,KAAKM,YAAY;wBAChCC,WAAWP,KAAKQ,QAAQ;wBACxBC,aAAaT,KAAKU,UAAU;wBAC5BC,WAAWX,KAAKY,QAAQ;wBACxBI,SAAShB,KAAKgB,OAAO;wBACrBC,QAAQjB,KAAKiB,MAAM;wBACnBJ,SAASb,KAAKa,OAAO;oBACvB;gBACF;YACF;YACA,OAAO9B,UAAUa,UAAUX;QAC7B;QAEA,MAAMiC,QAAOpB,QAAgB;YAC3B,MAAMX,UAAU+B,MAAM,CAAC,CAAC,MAAM,EAAEpB,SAAS,CAAC;QAC5C;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/category.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Category extends IdentityCore {\n code: string;\n name: string;\n description?: string;\n parentId?: string;\n parentUniqueId?: string;\n\n // Display\n displayOrder?: number;\n iconUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n slug?: string;\n\n // Business Logic\n status: EntityStatus;\n enabled: boolean;\n\n // SEO\n metaTitle?: string;\n metaDescription?: string;\n metaKeywords?: string;\n\n // Source tracking\n source?: string;\n sourceAlias?: string;\n sourceId?: string;\n sourceType?: string;\n\n // Extra\n payload?: Record<string, unknown>;\n\n // Nested\n children?: Category[];\n postCount?: number;\n}\n\n// Request types\nexport interface CreateCategoryRequest {\n name: string;\n description?: string;\n parentUniqueId?: string;\n displayOrder?: number;\n imageUrl?: string;\n iconUrl?: string;\n}\n\nexport interface UpdateCategoryRequest {\n name?: string;\n description?: string;\n parentUniqueId?: string;\n displayOrder?: number;\n imageUrl?: string;\n iconUrl?: string;\n enabled?: boolean;\n status?: EntityStatus;\n}\n\nexport interface ListCategoriesParams {\n page?: number;\n perPage?: number;\n parentUniqueId?: string;\n withChildren?: boolean;\n withPosts?: boolean;\n}\n"],"names":[],"rangeMappings":"","mappings":"AA4DA,WAMC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/comment.ts"],"sourcesContent":["import type { IdentityCore, EntityStatus } from '@23blocks/contracts';\n\nexport interface Comment extends IdentityCore {\n uniqueId: string;\n postUniqueId: string;\n postVersion?: number;\n content: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n\n // User (denormalized)\n userUniqueId?: string;\n userName?: string;\n userAlias?: string;\n userAvatarUrl?: string;\n\n payload?: Record<string, unknown>;\n status: EntityStatus;\n enabled: boolean;\n\n // Threading\n parentId?: string;\n\n // Engagement metrics\n likes?: number;\n dislikes?: number;\n followers?: number;\n savers?: number;\n\n // AI\n aiGenerated?: boolean;\n aiModel?: string;\n\n // Moderation\n moderated?: boolean;\n moderatedBy?: string;\n moderatedAt?: Date;\n moderationReason?: string;\n moderationDecision?: string;\n}\n\n// Request types\nexport interface CreateCommentRequest {\n postUniqueId: string;\n content: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n parentId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface UpdateCommentRequest {\n content?: string;\n thumbnailUrl?: string;\n imageUrl?: string;\n contentUrl?: string;\n mediaUrl?: string;\n enabled?: boolean;\n status?: EntityStatus;\n payload?: Record<string, unknown>;\n}\n\nexport interface ListCommentsParams {\n page?: number;\n perPage?: number;\n postUniqueId?: string;\n userUniqueId?: string;\n parentId?: string;\n status?: EntityStatus;\n}\n"],"names":[],"rangeMappings":"","mappings":"AAkEA,WAOC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/types/index.ts"],"sourcesContent":["export * from './post';\nexport * from './comment';\nexport * from './category';\nexport * from './tag';\n"],"names":[],"rangeMappings":";;;","mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,YAAY;AAC1B,cAAc,aAAa;AAC3B,cAAc,QAAQ"}
|
package/dist/lib/types/post.js
DELETED