asana 1.0.0.0 → 1.0.1.0
raw patch · 5 files changed
+54/−19 lines, 5 filesdep ~aesondep ~aeson-casingdep ~bytestringPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson, aeson-casing, bytestring, hashable, http-conduit, iso8601-time, microlens, microlens-mtl, monad-logger, mtl, scientific, text, time, unliftio, unliftio-core, unordered-containers
API changes (from Hackage documentation)
+ Asana.Api.Tag: Tag :: Gid -> Text -> Tag
+ Asana.Api.Tag: [tGid] :: Tag -> Gid
+ Asana.Api.Tag: [tName] :: Tag -> Text
+ Asana.Api.Tag: data Tag
+ Asana.Api.Tag: instance Data.Aeson.Types.FromJSON.FromJSON Asana.Api.Tag.Tag
+ Asana.Api.Tag: instance GHC.Classes.Eq Asana.Api.Tag.Tag
+ Asana.Api.Tag: instance GHC.Generics.Generic Asana.Api.Tag.Tag
+ Asana.Api.Tag: instance GHC.Show.Show Asana.Api.Tag.Tag
+ Asana.Api.Task: [tTags] :: Task -> [Tag]
+ Asana.Api.Task: addTag :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasAsanaAccessKey env) => Gid -> Gid -> m ()
- Asana.Api.Prelude: class Foldable (t :: Type -> Type)
+ Asana.Api.Prelude: class Foldable (t :: TYPE LiftedRep -> Type)
- Asana.Api.Prelude: infixl 6 +
+ Asana.Api.Prelude: infixl 6 -
- Asana.Api.Prelude: seq :: forall (r :: RuntimeRep) a (b :: TYPE r). a -> b -> b
+ Asana.Api.Prelude: seq :: forall {r :: RuntimeRep} a (b :: TYPE r). a -> b -> b
- Asana.Api.Task: Task :: Maybe Named -> Text -> Bool -> Maybe UTCTime -> UTCTime -> CustomFields -> [Membership] -> Gid -> ResourceSubtype -> Text -> [AsanaReference] -> Task
+ Asana.Api.Task: Task :: Maybe Named -> Text -> Bool -> Maybe UTCTime -> UTCTime -> CustomFields -> [Membership] -> Gid -> ResourceSubtype -> Text -> [AsanaReference] -> [Tag] -> Task
Files
- CHANGELOG.md +5/−1
- asana.cabal +18/−17
- library/Asana/Api/Tag.hs +18/−0
- library/Asana/Api/Task.hs +12/−0
- package.yaml +1/−1
CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/asana-hs/compare/v1.0.0.0...main)+## [_Unreleased_](https://github.com/freckle/asana-hs/compare/v1.0.1.0...main)++## [v1.0.1.0](https://github.com/freckle/asana-hs/compare/v1.0.0.0...v1.0.1.0)++- Add support for seeing and adding tags on `Task`s ## [v1.0.0.0](https://github.com/freckle/asana-hs/tree/v1.0.0.0)
asana.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: asana-version: 1.0.0.0+version: 1.0.1.0 license: MIT license-file: LICENSE maintainer: Freckle Education@@ -27,6 +27,7 @@ Asana.Api.Prelude Asana.Api.Project Asana.Api.Request+ Asana.Api.Tag Asana.Api.Task Asana.Api.Task.Search @@ -48,23 +49,23 @@ -Wno-monomorphism-restriction -Wno-unsafe -Wno-safe build-depends:- aeson >=1.3.1.1,- aeson-casing >=0.1.0.5,+ aeson,+ aeson-casing, base >=4.11.1.0 && <5,- bytestring >=0.10.8.2,- hashable >=1.2.7.0,- http-conduit >=2.3.2,- iso8601-time >=0.1.5,- microlens >=0.4.9.1,- microlens-mtl >=0.1.11.1,- monad-logger >=0.3.30,- mtl >=2.2.2,- scientific >=0.3.6.2,- text >=1.2.3.1,- time >=1.8.0.2,- unliftio >=0.2.9.0,- unliftio-core >=0.1.2.0,- unordered-containers >=0.2.9.0+ bytestring,+ hashable,+ http-conduit,+ iso8601-time,+ microlens,+ microlens-mtl,+ monad-logger,+ mtl,+ scientific,+ text,+ time,+ unliftio,+ unliftio-core,+ unordered-containers if impl(ghc >=9.2) ghc-options: -Wno-missing-kind-signatures
+ library/Asana/Api/Tag.hs view
@@ -0,0 +1,18 @@+module Asana.Api.Tag+ ( Tag(..)+ ) where++import Asana.Api.Prelude++import Asana.Api.Gid+import Data.Aeson+import Data.Aeson.Casing (aesonPrefix, snakeCase)++data Tag = Tag+ { tGid :: Gid+ , tName :: Text+ }+ deriving stock (Eq, Generic, Show)++instance FromJSON Tag where+ parseJSON = genericParseJSON $ aesonPrefix snakeCase
library/Asana/Api/Task.hs view
@@ -8,6 +8,7 @@ , getProjectTasks , getProjectTasksCompletedSince , postTask+ , addTag , putCompleted , taskUrl , extractNumberField@@ -20,6 +21,7 @@ import Asana.Api.Gid import Asana.Api.Named import Asana.Api.Request+import Asana.Api.Tag import Data.Aeson import Data.Aeson.Casing (aesonPrefix, snakeCase) import Data.HashMap.Strict (HashMap)@@ -55,6 +57,7 @@ , tResourceSubtype :: ResourceSubtype , tNotes :: Text , tProjects :: [AsanaReference]+ , tTags :: [Tag] } deriving stock (Eq, Generic, Show) @@ -123,6 +126,15 @@ getProjectTasksCompletedSince projectId since = getAllParams (T.unpack $ "/projects/" <> gidToText projectId <> "/tasks") [("completed_since", formatISO8601 since)]++addTag+ :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasAsanaAccessKey env)+ => Gid+ -> Gid -- ^ Tag+ -> m ()+addTag task tag =+ void $ post ("/tasks/" <> T.unpack (gidToText task) <> "/addTag") $ ApiData+ (object ["tag" .= tag]) putCompleted :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasAsanaAccessKey env)
package.yaml view
@@ -1,5 +1,5 @@ name: asana-version: 1.0.0.0+version: 1.0.1.0 maintainer: Freckle Education category: Utils github: freckle/asana-hs