From 34ba50fee41772cc8138facb30b70ad7880e8ca6 Mon Sep 17 00:00:00 2001 From: virtualmarc Date: Mon, 24 Feb 2020 22:08:52 +0100 Subject: [PATCH] Add tags --- CHANGELOG.md | 1 + lib/src/shlink_base.dart | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 806bc13..b44b935 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - List short URL's - List tags +- Add tags ## 0.2.0 diff --git a/lib/src/shlink_base.dart b/lib/src/shlink_base.dart index dc3723c..2463c5c 100644 --- a/lib/src/shlink_base.dart +++ b/lib/src/shlink_base.dart @@ -246,4 +246,29 @@ class Shlink { .map((t) => t.toString()) .toList(); } + + /// Add new Tags from [lstTags] + Future> addTags(List lstTags) async { + String sUrl = '$_url$_API_PATH/tags'; + + Map mJsonReq = {'tags': lstTags}; + + HttpClientRequest request = await HttpClient().postUrl(Uri.parse(sUrl)) + ..headers.contentType = ContentType.json + ..headers.set(_HEADER_API_KEY, _apiKey) + ..write(jsonEncode(mJsonReq)); + + HttpClientResponse response = await request.close(); + String sBody = await utf8.decoder.bind(response).single; + + if (response.statusCode != 200) { + throw ShlinkException.fromJson(response.statusCode, sBody); + } + + Map mJsonResp = jsonDecode(sBody); + + return (mJsonResp['tags']['data'] as List) + .map((t) => t.toString()) + .toList(); + } }