Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | 33x 33x 33x 33x 2x 2x 2x 33x 2x 2x 2x 33x 824x 824x 82368x 82368x 33x 1x 33x | import { Types } from 'cafe-utility' import { BeeRequestOptions, Tag } from '../types' import { http } from '../utils/http' import { Reference } from '../utils/typed-bytes' const endpoint = 'tags' /** * Create new tag on the Bee node * * @param url Bee tag URL */ export async function createTag(requestOptions: BeeRequestOptions): Promise<Tag> { const response = await http<unknown>(requestOptions, { method: 'post', url: endpoint, responseType: 'json', }) const body = Types.asObject(response.data, { name: 'response.data' }) return { address: Types.asEmptiableString(body.address, { name: 'address' }), seen: Types.asNumber(body.seen, { name: 'seen' }), sent: Types.asNumber(body.sent, { name: 'sent' }), split: Types.asNumber(body.split, { name: 'split' }), startedAt: Types.asString(body.startedAt, { name: 'startedAt' }), stored: Types.asNumber(body.stored, { name: 'stored' }), synced: Types.asNumber(body.synced, { name: 'synced' }), uid: Types.asNumber(body.uid, { name: 'uid' }), } } /** * Retrieve tag information from Bee node * * @param url Bee tag URL * @param uid UID of tag to be retrieved */ export async function retrieveTag(requestOptions: BeeRequestOptions, uid: number): Promise<Tag> { const response = await http<unknown>(requestOptions, { url: `${endpoint}/${uid}`, responseType: 'json', }) const body = Types.asObject(response.data, { name: 'response.data' }) return { address: Types.asEmptiableString(body.address, { name: 'address' }), seen: Types.asNumber(body.seen, { name: 'seen' }), sent: Types.asNumber(body.sent, { name: 'sent' }), split: Types.asNumber(body.split, { name: 'split' }), startedAt: Types.asString(body.startedAt, { name: 'startedAt' }), stored: Types.asNumber(body.stored, { name: 'stored' }), synced: Types.asNumber(body.synced, { name: 'synced' }), uid: Types.asNumber(body.uid, { name: 'uid' }), } } /** * Get limited listing of all tags. * * @param url * @param offset * @param limit */ export async function getAllTags(requestOptions: BeeRequestOptions, offset?: number, limit?: number): Promise<Tag[]> { const response = await http<unknown>(requestOptions, { url: endpoint, params: { offset, limit }, responseType: 'json', }) const body = Types.asObject(response.data, { name: 'response.data' }) const tags = Types.asArray(body.tags, { name: 'tags' }).map(x => Types.asObject(x, { name: 'tag' })) return tags.map(x => ({ address: Types.asEmptiableString(x.address, { name: 'address' }), seen: Types.asNumber(x.seen, { name: 'seen' }), sent: Types.asNumber(x.sent, { name: 'sent' }), split: Types.asNumber(x.split, { name: 'split' }), startedAt: Types.asString(x.startedAt, { name: 'startedAt' }), stored: Types.asNumber(x.stored, { name: 'stored' }), synced: Types.asNumber(x.synced, { name: 'synced' }), uid: Types.asNumber(x.uid, { name: 'uid' }), })) } /** * Removes tag from the Bee node. * @param url * @param uid */ export async function deleteTag(requestOptions: BeeRequestOptions, uid: number): Promise<void> { await http<void>(requestOptions, { method: 'delete', url: `${endpoint}/${uid}`, }) } /** * Updates tag * @param url * @param uid * @param reference */ export async function updateTag(requestOptions: BeeRequestOptions, uid: number, reference: Reference): Promise<void> { await http<void>(requestOptions, { method: 'patch', url: `${endpoint}/${uid}`, data: { reference, }, }) } |