From cdadae707c559e37568f6952740bc148224f22c3 Mon Sep 17 00:00:00 2001 From: Keagan McClelland Date: Tue, 1 Mar 2022 16:39:13 -0700 Subject: [PATCH] remove category enum (#97) * remove category enum * priority inversion, 0 is always first * set marketplace name default to something more obviously wrong. --- config/settings.yml | 1 + src/Database/Marketplace.hs | 6 ++-- src/Handler/Marketplace.hs | 4 +-- src/Handler/Types/Marketplace.hs | 2 +- src/Lib/Types/Category.hs | 50 -------------------------------- src/Model.hs | 3 +- src/Settings.hs | 2 +- 7 files changed, 9 insertions(+), 59 deletions(-) delete mode 100644 src/Lib/Types/Category.hs diff --git a/config/settings.yml b/config/settings.yml index c1106d7..77ab0d6 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -35,6 +35,7 @@ registry-hostname: "_env:REGISTRY_HOSTNAME:alpha-registry.start9labs.com" tor-port: "_env:TOR_PORT:447" static-bin-dir: "_env:STATIC_BIN:/usr/local/bin/" error-log-root: "_env:ERROR_LOG_ROOT:/var/log/embassy-os/" +marketplace-name: "_env:MARKETPLACE_NAME:CHANGE ME" database: database: "_env:PG_DATABASE:start9_registry" diff --git a/src/Database/Marketplace.hs b/src/Database/Marketplace.hs index 8eaa221..f28b076 100644 --- a/src/Database/Marketplace.hs +++ b/src/Database/Marketplace.hs @@ -39,10 +39,8 @@ import Database.Persist.Postgresql , selectSource , (||.) ) -import Handler.Types.Marketplace ( PackageDependencyMetadata(..) - ) +import Handler.Types.Marketplace ( PackageDependencyMetadata(..) ) import Lib.Types.AppIndex ( PkgId ) -import Lib.Types.Category import Lib.Types.Emver ( Version ) import Model import Startlude hiding ( (%) @@ -51,6 +49,8 @@ import Startlude hiding ( (%) , yield ) +type CategoryTitle = Text + searchServices :: (MonadResource m, MonadIO m) => Maybe CategoryTitle -> Text diff --git a/src/Handler/Marketplace.hs b/src/Handler/Marketplace.hs index 5e06498..6e8c704 100644 --- a/src/Handler/Marketplace.hs +++ b/src/Handler/Marketplace.hs @@ -56,6 +56,7 @@ import Database.Esqueleto.Experimental ( Entity(entityKey, entityVal) , SqlBackend , (^.) + , asc , desc , from , orderBy @@ -85,7 +86,6 @@ import Lib.PkgRepository ( PkgRepo , getManifest ) import Lib.Types.AppIndex ( PkgId ) -import Lib.Types.Category ( CategoryTitle(..) ) import Lib.Types.Emver ( Version , VersionRange , parseRange @@ -138,7 +138,7 @@ getInfoR = do name <- getsYesod $ marketplaceName . appSettings allCategories <- runDB $ select $ do cats <- from $ table @Category - orderBy [desc (cats ^. CategoryPriority)] + orderBy [asc (cats ^. CategoryPriority)] pure cats pure $ InfoRes name $ categoryName . entityVal <$> allCategories diff --git a/src/Handler/Types/Marketplace.hs b/src/Handler/Types/Marketplace.hs index 3708279..9669a5a 100644 --- a/src/Handler/Types/Marketplace.hs +++ b/src/Handler/Types/Marketplace.hs @@ -5,7 +5,6 @@ module Handler.Types.Marketplace where import Data.Aeson import qualified Data.HashMap.Internal.Strict as HM import Lib.Types.AppIndex ( PkgId ) -import Lib.Types.Category ( CategoryTitle ) import Lib.Types.Emver ( Version , VersionRange ) @@ -19,6 +18,7 @@ import Yesod type URL = Text +type CategoryTitle = Text data InfoRes = InfoRes { name :: Text , categories :: [CategoryTitle] diff --git a/src/Lib/Types/Category.hs b/src/Lib/Types/Category.hs deleted file mode 100644 index 20aede7..0000000 --- a/src/Lib/Types/Category.hs +++ /dev/null @@ -1,50 +0,0 @@ -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE QuasiQuotes #-} -{-# LANGUAGE DeriveGeneric #-} - -module Lib.Types.Category where - -import Startlude -import Database.Persist.Postgresql -import Data.Aeson -import Control.Monad -import Yesod.Core - -data CategoryTitle = FEATURED - | BITCOIN - | LIGHTNING - | DATA - | MESSAGING - | SOCIAL - | ALTCOIN - deriving (Eq, Enum, Show, Read, Generic) -instance PersistField CategoryTitle where - fromPersistValue = fromPersistValueJSON - toPersistValue = toPersistValueJSON -instance PersistFieldSql CategoryTitle where - sqlType _ = SqlString -instance ToJSON CategoryTitle where - -- toJSON = String . T.toLower . show - toJSON = \case - FEATURED -> "featured" - BITCOIN -> "bitcoin" - LIGHTNING -> "lightning" - DATA -> "data" - MESSAGING -> "messaging" - SOCIAL -> "social" - ALTCOIN -> "alt coin" -instance FromJSON CategoryTitle where - parseJSON = withText "CategoryTitle" $ \case - "featured" -> pure FEATURED - "bitcoin" -> pure BITCOIN - "lightning" -> pure LIGHTNING - "data" -> pure DATA - "messaging" -> pure MESSAGING - "social" -> pure SOCIAL - "alt coin" -> pure ALTCOIN - _ -> fail "unknown category title" -instance ToContent CategoryTitle where - toContent = toContent . toJSON -instance ToTypedContent CategoryTitle where - toTypedContent = toTypedContent . toJSON -instance Hashable CategoryTitle diff --git a/src/Model.hs b/src/Model.hs index 48472c4..78338ca 100644 --- a/src/Model.hs +++ b/src/Model.hs @@ -13,7 +13,6 @@ module Model where import Database.Persist.TH import Lib.Types.AppIndex -import Lib.Types.Category import Lib.Types.Emver import Orphans.Emver ( ) import Startlude @@ -60,7 +59,7 @@ Metric Category createdAt UTCTime - name CategoryTitle + name Text parent CategoryId Maybe description Text priority Int default=0 diff --git a/src/Settings.hs b/src/Settings.hs index 8129e1b..6db1d29 100644 --- a/src/Settings.hs +++ b/src/Settings.hs @@ -95,7 +95,7 @@ instance FromJSON AppSettings where let sslCertLocation = sslPath "certificate.pem" let registryVersion = fromJust . parseMaybe parseJSON . String . toS . showVersion $ version - marketplaceName <- o .:? "marketplace-name" .!= "Start9 Embassy Marketplace" + marketplaceName <- o .: "marketplace-name" return AppSettings { .. }