Files: 59b2150aa65f622113a8aae8016eb849a7345690 / book / obs / struct.js
864 bytesRaw
1 | const nest = require('depnest') |
2 | const { Value, Set, Dict, Struct } = require('mutant') |
3 | const eq = require('deep-equal') |
4 | |
5 | exports.needs = nest({ |
6 | 'sbot.async.publish': 'first' |
7 | }) |
8 | |
9 | exports.gives = nest('book.obs.struct') |
10 | |
11 | exports.create = function (api) { |
12 | return nest('book.obs.struct', function (opts = {}) { |
13 | const struct = Struct({ |
14 | key: Value(''), |
15 | title: Value(''), |
16 | authors: Value(''), |
17 | description: Value(''), |
18 | images: Set([], { comparer: eq }), |
19 | subjective: Dict() |
20 | }) |
21 | |
22 | struct.create = function(cb) |
23 | { |
24 | let s = struct() |
25 | |
26 | let message = { |
27 | type: 'bookclub', |
28 | title: s.title, |
29 | authors: s.authors, |
30 | description: s.description |
31 | } |
32 | |
33 | if (s.images.length > 0) |
34 | message.image = s.images[0] |
35 | |
36 | api.sbot.async.publish(message, cb) |
37 | } |
38 | |
39 | return struct |
40 | }) |
41 | } |
42 |
Built with git-ssb-web